[glade/tintou/more-g-declare: 17/21] gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditorProperty



commit d7a2af140cd7ea3602f7dca545bbd61acb75c931
Author: Corentin Noël <corentin noel collabora com>
Date:   Fri Aug 16 21:28:15 2019 +0200

    gladeui: Use G_DECLARE_DERIVABLE_TYPE for GladeEditorProperty
    
    Also adapt the subclassing macro and the subclasses and make it easier to read

 gladeui/glade-editor-property.c           | 566 +++++++++++++++---------------
 gladeui/glade-editor-property.h           |  81 +----
 plugins/gtk+/glade-accels.c               |  15 +-
 plugins/gtk+/glade-attributes.c           |  12 +-
 plugins/gtk+/glade-cell-renderer-editor.c |  14 +-
 plugins/gtk+/glade-column-types.c         |  17 +-
 plugins/gtk+/glade-icon-sources.c         |  17 +-
 plugins/gtk+/glade-model-data.c           |  13 +-
 plugins/gtk+/glade-string-list.c          |   8 +-
 9 files changed, 337 insertions(+), 406 deletions(-)
---
diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
index 657beff0..8812ea07 100644
--- a/gladeui/glade-editor-property.c
+++ b/gladeui/glade-editor-property.c
@@ -80,7 +80,7 @@ static guint glade_eprop_signals[LAST_SIGNAL] = { 0, };
 #define FLAGS_COLUMN_SYMBOL              1
 #define FLAGS_COLUMN_VALUE               2
 
-struct _GladeEditorPropertyPrivate
+typedef struct _GladeEditorPropertyPrivate
 {
   GladePropertyDef   *property_def;   /* The property definition this GladeEditorProperty was created for */
   GladeProperty      *property;       /* The currently loaded property */
@@ -109,7 +109,7 @@ struct _GladeEditorPropertyPrivate
   guint               changed_blocked : 1; /* Whether the GladeProperty changed signal is currently blocked 
*/
 
   guint               disable_check : 1; /* Whether to explicitly disable the optional check button */
-};
+} GladeEditorPropertyPrivate;
 
 static void glade_editor_property_editable_init (GladeEditableInterface *iface);
 
@@ -180,16 +180,18 @@ static void
 glade_editor_property_commit_common (GladeEditorProperty *eprop,
                                      GValue              *value)
 {
-  if (eprop->priv->use_command == FALSE)
-    glade_property_set_value (eprop->priv->property, value);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  if (priv->use_command == FALSE)
+    glade_property_set_value (priv->property, value);
   else
-    glade_command_set_property_value (eprop->priv->property, value);
+    glade_command_set_property_value (priv->property, value);
 
   /* If the value was denied by a verify function, we'll have to
    * reload the real value.
    */
-  if (!glade_property_equals_value (eprop->priv->property, value))
-    glade_editor_property_load (eprop, eprop->priv->property);
+  if (!glade_property_equals_value (priv->property, value))
+    glade_editor_property_load (eprop, priv->property);
 
   /* Restore input focus. If the property is construct-only, then 
    * glade_widget_rebuild() will be called which means the object will be
@@ -197,12 +199,12 @@ glade_editor_property_commit_common (GladeEditorProperty *eprop,
    * the eprop loose its focus.
    * 
    * FIXME: find a better way to set focus?
-   * make gtk_widget_grab_focus(eprop->priv->input) work?
+   * make gtk_widget_grab_focus(priv->input) work?
    */
-  if (glade_property_def_get_construct_only (eprop->priv->property_def))
+  if (glade_property_def_get_construct_only (priv->property_def))
     {
       gboolean focus_set = FALSE;
-      gtk_container_foreach (GTK_CONTAINER (eprop->priv->input),
+      gtk_container_foreach (GTK_CONTAINER (priv->input),
                              deepest_child_grab_focus,
                              &focus_set);
     }
@@ -212,24 +214,26 @@ void
 glade_editor_property_commit_no_callback (GladeEditorProperty *eprop,
                                           GValue              *value)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
 
-  if (eprop->priv->committing)
+  if (priv->committing)
     return;
 
-  g_signal_handler_block (G_OBJECT (eprop->priv->property), eprop->priv->changed_id);
-  eprop->priv->changed_blocked = TRUE;
+  g_signal_handler_block (G_OBJECT (priv->property), priv->changed_id);
+  priv->changed_blocked = TRUE;
 
-  eprop->priv->committing = TRUE;
+  priv->committing = TRUE;
   glade_editor_property_commit (eprop, value);
-  eprop->priv->committing = FALSE;
+  priv->committing = FALSE;
 
   /* When construct-only properties are set, we are disconnected and re-connected
    * to the GladeWidget while it's rebuilding it's instance, in this case the
    * signal handler is no longer blocked at this point.
    */
-  if (eprop->priv->changed_blocked)
-    g_signal_handler_unblock (G_OBJECT (eprop->priv->property), eprop->priv->changed_id);
+  if (priv->changed_blocked)
+    g_signal_handler_unblock (G_OBJECT (priv->property), priv->changed_id);
 }
 
 
@@ -237,12 +241,10 @@ void
 glade_editor_property_set_custom_text (GladeEditorProperty *eprop,
                                        const gchar         *custom_text)
 {
-  GladeEditorPropertyPrivate *priv;
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
   g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
 
-  priv = eprop->priv;
-
   if (g_strcmp0 (priv->custom_text, custom_text) != 0)
     {
       g_free (priv->custom_text);
@@ -259,21 +261,21 @@ glade_editor_property_set_custom_text (GladeEditorProperty *eprop,
 const gchar *
 glade_editor_property_get_custom_text (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), NULL);
 
-  return eprop->priv->custom_text;
+  return priv->custom_text;
 }
 
 void
 glade_editor_property_set_disable_check (GladeEditorProperty *eprop,
                                          gboolean             disable_check)
 {
-  GladeEditorPropertyPrivate *priv;
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
   g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
 
-  priv = eprop->priv;
-
   if (priv->disable_check != disable_check)
     {
       priv->disable_check = disable_check;
@@ -285,9 +287,11 @@ glade_editor_property_set_disable_check (GladeEditorProperty *eprop,
 gboolean
 glade_editor_property_get_disable_check (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), FALSE);
 
-  return eprop->priv->disable_check;
+  return priv->disable_check;
 }
 
 /**
@@ -299,20 +303,22 @@ glade_editor_property_get_disable_check (GladeEditorProperty *eprop)
 GtkWidget *
 glade_editor_property_get_item_label  (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), NULL);
 
-  if (!eprop->priv->item_label)
+  if (!priv->item_label)
     {
-      eprop->priv->item_label = glade_property_label_new();
+      priv->item_label = glade_property_label_new();
 
-      g_object_ref_sink (eprop->priv->item_label);
+      g_object_ref_sink (priv->item_label);
 
-      if (eprop->priv->property)
-        glade_property_label_set_property (GLADE_PROPERTY_LABEL (eprop->priv->item_label),
-                                           eprop->priv->property);
+      if (priv->property)
+        glade_property_label_set_property (GLADE_PROPERTY_LABEL (priv->item_label),
+                                           priv->property);
     }
 
-  return eprop->priv->item_label;
+  return priv->item_label;
 }
 
 /**
@@ -324,9 +330,11 @@ glade_editor_property_get_item_label  (GladeEditorProperty *eprop)
 GladePropertyDef *
 glade_editor_property_get_property_def (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), NULL);
 
-  return eprop->priv->property_def;
+  return priv->property_def;
 }
 
 /**
@@ -338,17 +346,21 @@ glade_editor_property_get_property_def (GladeEditorProperty *eprop)
 GladeProperty *
 glade_editor_property_get_property (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), NULL);
 
-  return eprop->priv->property;
+  return priv->property;
 }
 
 gboolean
 glade_editor_property_loading (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_val_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop), FALSE);
 
-  return eprop->priv->loading;
+  return priv->loading;
 }
 
 static void
@@ -358,6 +370,7 @@ glade_editor_property_tooltip_cb (GladeProperty       *property,
                                   const gchar         *support,
                                   GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   const gchar *choice_tooltip;
 
   if (glade_property_get_sensitive (property))
@@ -365,7 +378,7 @@ glade_editor_property_tooltip_cb (GladeProperty       *property,
   else
     choice_tooltip = insensitive;
 
-  gtk_widget_set_tooltip_text (eprop->priv->input, choice_tooltip);
+  gtk_widget_set_tooltip_text (priv->input, choice_tooltip);
 }
 
 static void
@@ -373,7 +386,7 @@ glade_editor_property_sensitivity_cb (GladeProperty       *property,
                                       GParamSpec          *pspec,
                                       GladeEditorProperty *eprop)
 {
-  GladeEditorPropertyPrivate *priv = eprop->priv;
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gboolean property_enabled = glade_property_get_enabled (property);
   gboolean sensitive = glade_property_get_sensitive (priv->property);
   gboolean support_sensitive =
@@ -392,15 +405,20 @@ glade_editor_property_value_changed_cb (GladeProperty       *property,
                                         GValue              *value,
                                         GladeEditorProperty *eprop)
 {
-  g_assert (eprop->priv->property == property);
-  glade_editor_property_load (eprop, eprop->priv->property);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  g_assert (priv->property == property);
+
+  glade_editor_property_load (eprop, priv->property);
 }
 
 static void
 glade_editor_property_enabled_toggled_cb (GtkWidget *check,
                                           GladeEditorProperty *eprop)
 {
-  glade_command_set_property_enabled (eprop->priv->property,
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  glade_command_set_property_enabled (priv->property,
                                       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)));
 }
 
@@ -409,23 +427,25 @@ glade_editor_property_enabled_cb (GladeProperty       *property,
                                   GParamSpec          *pspec,
                                   GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gboolean enabled;
-  g_assert (eprop->priv->property == property);
 
-  if (glade_property_def_optional (eprop->priv->property_def))
+  g_assert (priv->property == property);
+
+  if (glade_property_def_optional (priv->property_def))
     {
       enabled = glade_property_get_enabled (property);
 
       /* sensitive = enabled && support enabled && sensitive */
       if (enabled == FALSE)
-        gtk_widget_set_sensitive (eprop->priv->input, FALSE);
+        gtk_widget_set_sensitive (priv->input, FALSE);
       else if (glade_property_get_sensitive (property) ||
                (glade_property_get_state (property) & GLADE_STATE_SUPPORT_DISABLED) != 0)
-        gtk_widget_set_sensitive (eprop->priv->input, TRUE);
+        gtk_widget_set_sensitive (priv->input, TRUE);
 
-      g_signal_handlers_block_by_func (eprop->priv->check, glade_editor_property_enabled_toggled_cb, eprop);
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (eprop->priv->check), enabled);
-      g_signal_handlers_unblock_by_func (eprop->priv->check, glade_editor_property_enabled_toggled_cb, 
eprop);
+      g_signal_handlers_block_by_func (priv->check, glade_editor_property_enabled_toggled_cb, eprop);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check), enabled);
+      g_signal_handlers_unblock_by_func (priv->check, glade_editor_property_enabled_toggled_cb, eprop);
     }
 }
 
@@ -434,9 +454,11 @@ glade_editor_property_button_pressed (GtkWidget           *widget,
                                       GdkEventButton      *event,
                                       GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   if (glade_popup_is_popup_event (event))
     {
-      glade_popup_property_pop (eprop->priv->property, event);
+      glade_popup_property_pop (priv->property, event);
       return TRUE;
     }
   return FALSE;
@@ -447,49 +469,52 @@ static void
 glade_editor_property_constructed (GObject *object)
 {
   GladeEditorProperty *eprop;
+  GladeEditorPropertyPrivate *priv;
 
   eprop = GLADE_EDITOR_PROPERTY (object);
+  priv = glade_editor_property_get_instance_private (eprop);
 
   G_OBJECT_CLASS (glade_editor_property_parent_class)->constructed (object);
 
   /* Create hbox and possibly check button
    */
-  if (glade_property_def_optional (eprop->priv->property_def))
+  if (glade_property_def_optional (priv->property_def))
     {
-      eprop->priv->check = gtk_check_button_new ();
-      gtk_widget_set_focus_on_click (eprop->priv->check, FALSE);
+      priv->check = gtk_check_button_new ();
+      gtk_widget_set_focus_on_click (priv->check, FALSE);
 
-      if (!eprop->priv->disable_check)
-        gtk_widget_show (eprop->priv->check);
+      if (!priv->disable_check)
+        gtk_widget_show (priv->check);
 
-      gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->check, FALSE, FALSE, 0);
-      g_signal_connect (G_OBJECT (eprop->priv->check), "toggled",
+      gtk_box_pack_start (GTK_BOX (eprop), priv->check, FALSE, FALSE, 0);
+      g_signal_connect (G_OBJECT (priv->check), "toggled",
                         G_CALLBACK (glade_editor_property_enabled_toggled_cb),
                         eprop);
     }
 
   /* Create the class specific input widget and add it */
-  eprop->priv->input = GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->create_input (eprop);
-  gtk_widget_show (eprop->priv->input);
+  priv->input = GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->create_input (eprop);
+  gtk_widget_show (priv->input);
 
-  g_signal_connect (G_OBJECT (eprop->priv->input), "button-press-event",
+  g_signal_connect (G_OBJECT (priv->input), "button-press-event",
                     G_CALLBACK (glade_editor_property_button_pressed), eprop);
 
-  if (gtk_widget_get_halign (eprop->priv->input) != GTK_ALIGN_FILL)
-    gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->input, FALSE, TRUE, 0);
+  if (gtk_widget_get_halign (priv->input) != GTK_ALIGN_FILL)
+    gtk_box_pack_start (GTK_BOX (eprop), priv->input, FALSE, TRUE, 0);
   else
-    gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->input, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (eprop), priv->input, TRUE, TRUE, 0);
 }
 
 static void
 glade_editor_property_finalize (GObject *object)
 {
   GladeEditorProperty *eprop = GLADE_EDITOR_PROPERTY (object);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
   /* detatch from loaded property */
   glade_editor_property_load_common (eprop, NULL);
 
-  g_free (eprop->priv->custom_text);
+  g_free (priv->custom_text);
 
   G_OBJECT_CLASS (table_class)->finalize (object);
 }
@@ -498,12 +523,9 @@ static void
 glade_editor_property_dispose (GObject *object)
 {
   GladeEditorProperty *eprop = GLADE_EDITOR_PROPERTY (object);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
-  if (eprop->priv->item_label)
-    {
-      g_object_unref (eprop->priv->item_label);
-      eprop->priv->item_label = NULL;
-    }
+  g_clear_object (&priv->item_label);
 
   G_OBJECT_CLASS (table_class)->dispose (object);
 }
@@ -515,14 +537,15 @@ glade_editor_property_set_property (GObject      *object,
                                     GParamSpec   *pspec)
 {
   GladeEditorProperty *eprop = GLADE_EDITOR_PROPERTY (object);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
   switch (prop_id)
     {
       case PROP_PROPERTY_DEFINITION:
-        eprop->priv->property_def = g_value_get_pointer (value);
+        priv->property_def = g_value_get_pointer (value);
         break;
       case PROP_USE_COMMAND:
-        eprop->priv->use_command = g_value_get_boolean (value);
+        priv->use_command = g_value_get_boolean (value);
         break;
       case PROP_DISABLE_CHECK:
         glade_editor_property_set_disable_check (eprop, g_value_get_boolean (value));
@@ -543,20 +566,21 @@ glade_editor_property_real_get_property (GObject    *object,
                                          GParamSpec *pspec)
 {
   GladeEditorProperty *eprop = GLADE_EDITOR_PROPERTY (object);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
 
   switch (prop_id)
     {
       case PROP_PROPERTY_DEFINITION:
-        g_value_set_pointer (value, eprop->priv->property_def);
+        g_value_set_pointer (value, priv->property_def);
         break;
       case PROP_USE_COMMAND:
-        g_value_set_boolean (value, eprop->priv->use_command);
+        g_value_set_boolean (value, priv->use_command);
         break;
       case PROP_DISABLE_CHECK:
-        g_value_set_boolean (value, eprop->priv->disable_check);
+        g_value_set_boolean (value, priv->disable_check);
         break;
       case PROP_CUSTOM_TEXT:
-        g_value_set_string (value, eprop->priv->custom_text);
+        g_value_set_string (value, priv->custom_text);
         break;
       default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -568,11 +592,13 @@ static void
 glade_eprop_property_finalized (GladeEditorProperty *eprop,
                                 GladeProperty       *where_property_was)
 {
-  eprop->priv->tooltip_id = 0;
-  eprop->priv->sensitive_id = 0;
-  eprop->priv->changed_id = 0;
-  eprop->priv->enabled_id = 0;
-  eprop->priv->property = NULL;
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  priv->tooltip_id = 0;
+  priv->sensitive_id = 0;
+  priv->changed_id = 0;
+  priv->enabled_id = 0;
+  priv->property = NULL;
 
   glade_editor_property_load (eprop, NULL);
 }
@@ -581,28 +607,29 @@ static void
 glade_editor_property_load_common (GladeEditorProperty *eprop,
                                    GladeProperty       *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   /* NOTE THIS CODE IS FINALIZE SAFE */
 
   /* disconnect anything from previously loaded property */
-  if (eprop->priv->property != property && eprop->priv->property != NULL)
-    {
-      if (eprop->priv->tooltip_id > 0)
-        g_signal_handler_disconnect (eprop->priv->property, eprop->priv->tooltip_id);
-      if (eprop->priv->sensitive_id > 0)
-        g_signal_handler_disconnect (eprop->priv->property, eprop->priv->sensitive_id);
-      if (eprop->priv->changed_id > 0)
-        g_signal_handler_disconnect (eprop->priv->property, eprop->priv->changed_id);
-      if (eprop->priv->enabled_id > 0)
-        g_signal_handler_disconnect (eprop->priv->property, eprop->priv->enabled_id);
-
-      eprop->priv->tooltip_id = 0;
-      eprop->priv->sensitive_id = 0;
-      eprop->priv->changed_id = 0;
-      eprop->priv->enabled_id = 0;
-      eprop->priv->changed_blocked = FALSE;
+  if (priv->property != property && priv->property != NULL)
+    {
+      if (priv->tooltip_id > 0)
+        g_signal_handler_disconnect (priv->property, priv->tooltip_id);
+      if (priv->sensitive_id > 0)
+        g_signal_handler_disconnect (priv->property, priv->sensitive_id);
+      if (priv->changed_id > 0)
+        g_signal_handler_disconnect (priv->property, priv->changed_id);
+      if (priv->enabled_id > 0)
+        g_signal_handler_disconnect (priv->property, priv->enabled_id);
+
+      priv->tooltip_id = 0;
+      priv->sensitive_id = 0;
+      priv->changed_id = 0;
+      priv->enabled_id = 0;
+      priv->changed_blocked = FALSE;
 
       /* Unref it here */
-      g_object_weak_unref (G_OBJECT (eprop->priv->property),
+      g_object_weak_unref (G_OBJECT (priv->property),
                            (GWeakNotify) glade_eprop_property_finalized, eprop);
 
 
@@ -612,35 +639,35 @@ glade_editor_property_load_common (GladeEditorProperty *eprop,
        */
       if (property == NULL)
         {
-          eprop->priv->property = NULL;
+          priv->property = NULL;
         }
     }
 
   /* Connect new stuff, deal with tooltip
    */
-  if (eprop->priv->property != property && property != NULL)
+  if (priv->property != property && property != NULL)
     {
       GladePropertyDef *pclass = glade_property_get_def (property);
 
-      eprop->priv->property = property;
+      priv->property = property;
 
-      eprop->priv->tooltip_id =
-          g_signal_connect (G_OBJECT (eprop->priv->property),
+      priv->tooltip_id =
+          g_signal_connect (G_OBJECT (priv->property),
                             "tooltip-changed",
                             G_CALLBACK (glade_editor_property_tooltip_cb),
                             eprop);
-      eprop->priv->sensitive_id =
-          g_signal_connect (G_OBJECT (eprop->priv->property),
+      priv->sensitive_id =
+          g_signal_connect (G_OBJECT (priv->property),
                             "notify::sensitive",
                             G_CALLBACK (glade_editor_property_sensitivity_cb),
                             eprop);
-      eprop->priv->changed_id =
-          g_signal_connect (G_OBJECT (eprop->priv->property),
+      priv->changed_id =
+          g_signal_connect (G_OBJECT (priv->property),
                             "value-changed",
                             G_CALLBACK (glade_editor_property_value_changed_cb),
                             eprop);
-      eprop->priv->enabled_id =
-          g_signal_connect (G_OBJECT (eprop->priv->property),
+      priv->enabled_id =
+          g_signal_connect (G_OBJECT (priv->property),
                             "notify::enabled",
                             G_CALLBACK (glade_editor_property_enabled_cb),
                             eprop);
@@ -648,7 +675,7 @@ glade_editor_property_load_common (GladeEditorProperty *eprop,
       /* In query dialogs when the user hits cancel, 
        * these babies go away (so better stay protected).
        */
-      g_object_weak_ref (G_OBJECT (eprop->priv->property),
+      g_object_weak_ref (G_OBJECT (priv->property),
                          (GWeakNotify) glade_eprop_property_finalized, eprop);
 
       /* Load initial tooltips
@@ -671,8 +698,6 @@ glade_editor_property_load_common (GladeEditorProperty *eprop,
 static void
 glade_editor_property_init (GladeEditorProperty *eprop)
 {
-  eprop->priv = glade_editor_property_get_instance_private (eprop);
-
   gtk_box_set_spacing (GTK_BOX (eprop), 4);
   gtk_orientable_set_orientation (GTK_ORIENTABLE (eprop),
                                   GTK_ORIENTATION_HORIZONTAL);
@@ -769,7 +794,7 @@ glade_editor_property_class_init (GladeEditorPropertyClass *eprop_class)
 /*******************************************************************************
                         GladeEditorPropertyNumericClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropNumeric
 {
   GladeEditorProperty parent_instance;
 
@@ -777,14 +802,9 @@ typedef struct
   GBinding *binding;
 
   gboolean refreshing;
-} GladeEPropNumeric;
+};
 
-GLADE_MAKE_EPROP (GladeEPropNumeric, glade_eprop_numeric)
-#define GLADE_EPROP_NUMERIC(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_NUMERIC, 
GladeEPropNumeric))
-#define GLADE_EPROP_NUMERIC_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_NUMERIC, 
GladeEPropNumericClass))
-#define GLADE_IS_EPROP_NUMERIC(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_NUMERIC))
-#define GLADE_IS_EPROP_NUMERIC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_NUMERIC))
-#define GLADE_EPROP_NUMERIC_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_NUMERIC, 
GladeEPropNumericClass))
+GLADE_MAKE_EPROP (GladeEPropNumeric, glade_eprop_numeric, GLADE, EPROP_NUMERIC)
 
 static void
 glade_eprop_numeric_finalize (GObject *object)
@@ -796,6 +816,7 @@ glade_eprop_numeric_finalize (GObject *object)
 static void
 glade_eprop_numeric_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gdouble val = 0.0F;
   GladeEPropNumeric *eprop_numeric = GLADE_EPROP_NUMERIC (eprop);
   GParamSpec *pspec;
@@ -812,7 +833,7 @@ glade_eprop_numeric_load (GladeEditorProperty *eprop, GladeProperty *property)
   if (property)
     {
       value = glade_property_inline_value (property);
-      pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+      pspec = glade_property_def_get_pspec (priv->property_def);
 
       if (G_IS_PARAM_SPEC_INT (pspec))
         val = g_value_get_int (value);
@@ -872,13 +893,14 @@ glade_eprop_numeric_value_set (GValue *val, gdouble value)
 static void
 glade_eprop_numeric_changed (GtkWidget *spin, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GValue val = { 0, };
   GParamSpec *pspec;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
   g_value_init (&val, pspec->value_type);
   glade_eprop_numeric_value_set (&val, gtk_spin_button_get_value (GTK_SPIN_BUTTON (spin)));
 
@@ -961,12 +983,13 @@ on_spin_digits_notify (GObject *gobject, GParamSpec *pspec, gpointer user_data)
 static GtkWidget *
 glade_eprop_numeric_create_input (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropNumeric *eprop_numeric = GLADE_EPROP_NUMERIC (eprop);
   GtkAdjustment *adjustment;
   GParamSpec *pspec;
 
-  pspec      = glade_property_def_get_pspec (eprop->priv->property_def);
-  adjustment = glade_property_def_make_adjustment (eprop->priv->property_def);
+  pspec      = glade_property_def_get_pspec (priv->property_def);
+  adjustment = glade_property_def_make_adjustment (priv->property_def);
   eprop_numeric->spin = 
     gtk_spin_button_new (adjustment, 0.01,
                          G_IS_PARAM_SPEC_FLOAT (pspec) ||
@@ -1003,19 +1026,14 @@ glade_eprop_numeric_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyEnumClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropEnum
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *combo_box;
-} GladeEPropEnum;
+};
 
-GLADE_MAKE_EPROP (GladeEPropEnum, glade_eprop_enum)
-#define GLADE_EPROP_ENUM(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_ENUM, 
GladeEPropEnum))
-#define GLADE_EPROP_ENUM_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_ENUM, 
GladeEPropEnumClass))
-#define GLADE_IS_EPROP_ENUM(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_ENUM))
-#define GLADE_IS_EPROP_ENUM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_ENUM))
-#define GLADE_EPROP_ENUM_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ENUM, 
GladeEPropEnumClass))
+GLADE_MAKE_EPROP (GladeEPropEnum, glade_eprop_enum, GLADE, EPROP_ENUM)
 
 static void
 glade_eprop_enum_finalize (GObject *object)
@@ -1027,6 +1045,7 @@ glade_eprop_enum_finalize (GObject *object)
 static void
 glade_eprop_enum_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropEnum *eprop_enum = GLADE_EPROP_ENUM (eprop);
   GParamSpec *pspec;
   GEnumClass *eclass;
@@ -1038,7 +1057,7 @@ glade_eprop_enum_load (GladeEditorProperty *eprop, GladeProperty *property)
 
   if (property)
     {
-      pspec  = glade_property_def_get_pspec (eprop->priv->property_def);
+      pspec  = glade_property_def_get_pspec (priv->property_def);
       eclass = g_type_class_ref (pspec->value_type);
       value  = g_value_get_enum (glade_property_inline_value (property));
 
@@ -1055,20 +1074,21 @@ glade_eprop_enum_load (GladeEditorProperty *eprop, GladeProperty *property)
 static void
 glade_eprop_enum_changed (GtkWidget *combo_box, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gint ival;
   GValue val = { 0, };
   GParamSpec *pspec;
   GtkTreeModel *tree_model;
   GtkTreeIter iter;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   tree_model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo_box));
   gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo_box), &iter);
   gtk_tree_model_get (tree_model, &iter, 1, &ival, -1);
 
-  pspec    = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec    = glade_property_def_get_pspec (priv->property_def);
 
   g_value_init (&val, pspec->value_type);
   g_value_set_enum (&val, ival);
@@ -1080,6 +1100,7 @@ glade_eprop_enum_changed (GtkWidget *combo_box, GladeEditorProperty *eprop)
 static GtkWidget *
 glade_eprop_enum_create_input (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropEnum *eprop_enum = GLADE_EPROP_ENUM (eprop);
   GladePropertyDef *property_def;
   GParamSpec *pspec;
@@ -1089,7 +1110,7 @@ glade_eprop_enum_create_input (GladeEditorProperty *eprop)
   GtkCellRenderer *cell_renderer;
   guint i;
 
-  property_def  = eprop->priv->property_def;
+  property_def  = priv->property_def;
   pspec  = glade_property_def_get_pspec (property_def);
   eclass = g_type_class_ref (pspec->value_type);
 
@@ -1145,20 +1166,15 @@ glade_eprop_enum_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyFlagsClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropFlags
 {
   GladeEditorProperty parent_instance;
 
   GtkTreeModel *model;
   GtkWidget *entry;
-} GladeEPropFlags;
+};
 
-GLADE_MAKE_EPROP (GladeEPropFlags, glade_eprop_flags)
-#define GLADE_EPROP_FLAGS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_FLAGS, 
GladeEPropFlags))
-#define GLADE_EPROP_FLAGS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_FLAGS, 
GladeEPropFlagsClass))
-#define GLADE_IS_EPROP_FLAGS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_FLAGS))
-#define GLADE_IS_EPROP_FLAGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_FLAGS))
-#define GLADE_EPROP_FLAGS_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_FLAGS, 
GladeEPropFlagsClass))
+GLADE_MAKE_EPROP (GladeEPropFlags, glade_eprop_flags, GLADE, EPROP_FLAGS)
 
 static void
 glade_eprop_flags_finalize (GObject *object)
@@ -1174,6 +1190,7 @@ glade_eprop_flags_finalize (GObject *object)
 static void
 glade_eprop_flags_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropFlags *eprop_flags = GLADE_EPROP_FLAGS (eprop);
   GFlagsClass *klass;
   GParamSpec  *pspec;
@@ -1190,7 +1207,7 @@ glade_eprop_flags_load (GladeEditorProperty *eprop, GladeProperty *property)
       /* Populate the model with the flags. */
       klass = g_type_class_ref (G_VALUE_TYPE (glade_property_inline_value (property)));
       value = g_value_get_flags (glade_property_inline_value (property));
-      pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+      pspec = glade_property_def_get_pspec (priv->property_def);
 
       /* Step through each of the flags in the class. */
       for (flag_num = 0; flag_num < klass->n_values; flag_num++)
@@ -1243,6 +1260,7 @@ flag_toggled_direct (GtkCellRendererToggle *cell,
                      gchar                 *path_string,
                      GladeEditorProperty   *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GtkTreeIter iter;
   guint new_value = 0;
   gboolean selected;
@@ -1251,10 +1269,10 @@ flag_toggled_direct (GtkCellRendererToggle *cell,
 
   GladeEPropFlags *eprop_flags = GLADE_EPROP_FLAGS (eprop);
 
-  if (!eprop->priv->property)
+  if (!priv->property)
     return;
 
-  gvalue = glade_property_inline_value (eprop->priv->property);
+  gvalue = glade_property_inline_value (priv->property);
 
   gtk_tree_model_get_iter_from_string (eprop_flags->model, &iter, path_string);
 
@@ -1418,20 +1436,15 @@ glade_eprop_flags_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyColorClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropColor
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *cbutton;
   GtkWidget *entry;
-} GladeEPropColor;
+};
 
-GLADE_MAKE_EPROP (GladeEPropColor, glade_eprop_color)
-#define GLADE_EPROP_COLOR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_COLOR, 
GladeEPropColor))
-#define GLADE_EPROP_COLOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_COLOR, 
GladeEPropColorClass))
-#define GLADE_IS_EPROP_COLOR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_COLOR))
-#define GLADE_IS_EPROP_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_COLOR))
-#define GLADE_EPROP_COLOR_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_COLOR, 
GladeEPropColorClass))
+GLADE_MAKE_EPROP (GladeEPropColor, glade_eprop_color, GLADE, EPROP_COLOR)
 
 static void
 glade_eprop_color_finalize (GObject *object)
@@ -1443,6 +1456,7 @@ glade_eprop_color_finalize (GObject *object)
 static void
 glade_eprop_color_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropColor *eprop_color = GLADE_EPROP_COLOR (eprop);
   GParamSpec *pspec;
   GdkColor *color;
@@ -1453,7 +1467,7 @@ glade_eprop_color_load (GladeEditorProperty *eprop, GladeProperty *property)
   /* Chain up first */
   editor_property_class->load (eprop, property);
 
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
 
   if (property)
     {
@@ -1531,14 +1545,15 @@ glade_eprop_color_load (GladeEditorProperty *eprop, GladeProperty *property)
 static void
 glade_eprop_color_changed (GtkWidget *button, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GdkRGBA rgba = { 0, };
   GValue value = { 0, };
   GParamSpec *pspec;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
   g_value_init (&value, pspec->value_type);
 
   gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &rgba);
@@ -1573,11 +1588,12 @@ glade_eprop_color_changed (GtkWidget *button, GladeEditorProperty *eprop)
 static GtkWidget *
 glade_eprop_color_create_input (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropColor *eprop_color = GLADE_EPROP_COLOR (eprop);
   GtkWidget *hbox;
   GParamSpec *pspec;
 
-  pspec  = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec  = glade_property_def_get_pspec (priv->property_def);
 
   hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   gtk_widget_set_halign (hbox, GTK_ALIGN_START);
@@ -1607,20 +1623,15 @@ glade_eprop_color_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyNamedIconClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropNamedIcon
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *entry;
   gchar *current_context;
-} GladeEPropNamedIcon;
+};
 
-GLADE_MAKE_EPROP (GladeEPropNamedIcon, glade_eprop_named_icon)
-#define GLADE_EPROP_NAMED_ICON(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EPROP_NAMED_ICON, GladeEPropNamedIcon))
-#define GLADE_EPROP_NAMED_ICON_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GLADE_TYPE_EPROP_NAMED_ICON, GladeEPropNamedIconClass))
-#define GLADE_IS_EPROP_NAMED_ICON(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EPROP_NAMED_ICON))
-#define GLADE_IS_EPROP_NAMED_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GLADE_TYPE_EPROP_NAMED_ICON))
-#define GLADE_EPROP_NAMED_ICON_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_NAMED_ICON, 
GladeEPropNamedIconClass))
+GLADE_MAKE_EPROP (GladeEPropNamedIcon, glade_eprop_named_icon, GLADE, EPROP_NAMED_ICON)
 
 static void
 glade_eprop_named_icon_finalize (GObject *object)
@@ -1656,6 +1667,7 @@ glade_eprop_named_icon_changed_common (GladeEditorProperty *eprop,
                                        const gchar         *text,
                                        gboolean             use_command)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GValue *val;
   gchar *prop_text;
 
@@ -1663,7 +1675,7 @@ glade_eprop_named_icon_changed_common (GladeEditorProperty *eprop,
 
   g_value_init (val, G_TYPE_STRING);
 
-  glade_property_get (eprop->priv->property, &prop_text);
+  glade_property_get (priv->property, &prop_text);
 
   /* Here we try not to modify the project state by not 
    * modifying a null value for an unchanged property.
@@ -1683,13 +1695,14 @@ glade_eprop_named_icon_changed_common (GladeEditorProperty *eprop,
 static void
 glade_eprop_named_icon_changed (GtkWidget *entry, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gchar *text;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   text = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
-  glade_eprop_named_icon_changed_common (eprop, text, eprop->priv->use_command);
+  glade_eprop_named_icon_changed_common (eprop, text, priv->use_command);
 
   g_free (text);
 }
@@ -1817,20 +1830,15 @@ glade_eprop_named_icon_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyTextClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropText
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *text_entry;
   GtkTreeModel *store;
-} GladeEPropText;
+};
 
-GLADE_MAKE_EPROP (GladeEPropText, glade_eprop_text)
-#define GLADE_EPROP_TEXT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_TEXT, 
GladeEPropText))
-#define GLADE_EPROP_TEXT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_TEXT, 
GladeEPropTextClass))
-#define GLADE_IS_EPROP_TEXT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_TEXT))
-#define GLADE_IS_EPROP_TEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_TEXT))
-#define GLADE_EPROP_TEXT_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_TEXT, 
GladeEPropTextClass))
+GLADE_MAKE_EPROP (GladeEPropText, glade_eprop_text, GLADE, EPROP_TEXT)
 
 static void
 glade_eprop_text_finalize (GObject *object)
@@ -1860,6 +1868,7 @@ text_buffer_get_text (GtkTextBuffer *buffer)
 static void
 glade_eprop_text_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropText *eprop_text = GLADE_EPROP_TEXT (eprop);
   GParamSpec *pspec;
 
@@ -1869,7 +1878,7 @@ glade_eprop_text_load (GladeEditorProperty *eprop, GladeProperty *property)
   if (property == NULL)
     return;
 
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
 
   if (GTK_IS_COMBO_BOX (eprop_text->text_entry))
     {
@@ -1956,6 +1965,7 @@ glade_eprop_text_changed_common (GladeEditorProperty *eprop,
                                  const gchar         *text,
                                  gboolean             use_command)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GValue *val;
   GParamSpec *pspec;
   gchar *prop_text;
@@ -1966,7 +1976,7 @@ glade_eprop_text_changed_common (GladeEditorProperty *eprop,
   value_array_type = G_TYPE_VALUE_ARRAY;
   G_GNUC_END_IGNORE_DEPRECATIONS;
 
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
 
   if (pspec->value_type == G_TYPE_STRV ||
       pspec->value_type == value_array_type ||
@@ -1974,9 +1984,9 @@ glade_eprop_text_changed_common (GladeEditorProperty *eprop,
       pspec->value_type == G_TYPE_FILE ||
       pspec->value_type == G_TYPE_VARIANT)
     {
-      GladeWidget *gwidget = glade_property_get_widget (eprop->priv->property);
+      GladeWidget *gwidget = glade_property_get_widget (priv->property);
 
-      val = glade_property_def_make_gvalue_from_string (eprop->priv->property_def, 
+      val = glade_property_def_make_gvalue_from_string (priv->property_def, 
                                                           text,
                                                           glade_widget_get_project (gwidget));
     }
@@ -1986,7 +1996,7 @@ glade_eprop_text_changed_common (GladeEditorProperty *eprop,
 
       g_value_init (val, G_TYPE_STRING);
 
-      glade_property_get (eprop->priv->property, &prop_text);
+      glade_property_get (priv->property, &prop_text);
 
       /* Here we try not to modify the project state by not 
        * modifying a null value for an unchanged property.
@@ -2007,13 +2017,14 @@ glade_eprop_text_changed_common (GladeEditorProperty *eprop,
 static void
 glade_eprop_text_changed (GtkWidget *entry, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gchar *text;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   text = gtk_editable_get_chars (GTK_EDITABLE (entry), 0, -1);
-  glade_eprop_text_changed_common (eprop, text, eprop->priv->use_command);
+  glade_eprop_text_changed_common (eprop, text, priv->use_command);
 
   g_free (text);
 }
@@ -2022,13 +2033,14 @@ static void
 glade_eprop_text_buffer_changed (GtkTextBuffer *buffer,
                                  GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gchar *text;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   text = text_buffer_get_text (buffer);
-  glade_eprop_text_changed_common (eprop, text, eprop->priv->use_command);
+  glade_eprop_text_changed_common (eprop, text, priv->use_command);
   g_free (text);
 }
 
@@ -2227,7 +2239,7 @@ glade_editor_property_show_i18n_dialog (GtkWidget *parent,
 static void
 glade_eprop_text_show_i18n_dialog (GladeEditorProperty *eprop)
 {
-  GladeEditorPropertyPrivate *priv = eprop->priv;
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gchar *text = glade_property_make_string (priv->property);
   gchar *context = g_strdup (glade_property_i18n_get_context (priv->property));
   gchar *comment = g_strdup (glade_property_i18n_get_comment (priv->property));
@@ -2294,13 +2306,14 @@ glade_editor_property_show_resource_dialog (GladeProject *project,
 static void
 glade_eprop_text_show_resource_dialog (GladeEditorProperty *eprop)
 {
-  GladeWidget  *widget  = glade_property_get_widget (eprop->priv->property);
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+  GladeWidget  *widget  = glade_property_get_widget (priv->property);
   GladeProject *project = glade_widget_get_project (widget);
   gchar *text = NULL;
 
   if (glade_editor_property_show_resource_dialog (project, GTK_WIDGET (eprop), &text))
     {
-      GParamSpec *pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+      GParamSpec *pspec = glade_property_def_get_pspec (priv->property_def);
 
       if (G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_FILE)
         {
@@ -2309,9 +2322,9 @@ glade_eprop_text_show_resource_dialog (GladeEditorProperty *eprop)
           g_free (path);
         }
 
-      glade_eprop_text_changed_common (eprop, text, eprop->priv->use_command);
+      glade_eprop_text_changed_common (eprop, text, priv->use_command);
 
-      glade_editor_property_load (eprop, eprop->priv->property);
+      glade_editor_property_load (eprop, priv->property);
 
       g_free (text);
     }
@@ -2358,26 +2371,27 @@ glade_eprop_text_create_store (GType enum_type)
 static void
 eprop_text_stock_changed (GtkComboBox *combo, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropText *eprop_text = GLADE_EPROP_TEXT (eprop);
   GtkTreeIter iter;
   gchar *text = NULL;
   const gchar *str;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   if (gtk_combo_box_get_active_iter (combo, &iter))
     {
       gtk_tree_model_get (GTK_TREE_MODEL (eprop_text->store), &iter,
                           COMBO_COLUMN_PIXBUF, &text, -1);
-      glade_eprop_text_changed_common (eprop, text, eprop->priv->use_command);
+      glade_eprop_text_changed_common (eprop, text, priv->use_command);
       g_free (text);
     }
   else if (gtk_combo_box_get_has_entry (combo))
     {
       str =
           gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo))));
-      glade_eprop_text_changed_common (eprop, str, eprop->priv->use_command);
+      glade_eprop_text_changed_common (eprop, str, priv->use_command);
     }
 }
 
@@ -2409,6 +2423,7 @@ get_text_view_height (void)
 static GtkWidget *
 glade_eprop_text_create_input (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropText *eprop_text = GLADE_EPROP_TEXT (eprop);
   GladePropertyDef *property_def;
   GParamSpec *pspec;
@@ -2420,7 +2435,7 @@ glade_eprop_text_create_input (GladeEditorProperty *eprop)
   value_array_type = G_TYPE_VALUE_ARRAY;
   G_GNUC_END_IGNORE_DEPRECATIONS;
 
-  property_def = eprop->priv->property_def;
+  property_def = priv->property_def;
   pspec = glade_property_def_get_pspec (property_def);
 
   hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
@@ -2557,19 +2572,14 @@ glade_eprop_text_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyBoolClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropBool
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *button;
-} GladeEPropBool;
+};
 
-GLADE_MAKE_EPROP (GladeEPropBool, glade_eprop_bool)
-#define GLADE_EPROP_BOOL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_BOOL, 
GladeEPropBool))
-#define GLADE_EPROP_BOOL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_BOOL, 
GladeEPropBoolClass))
-#define GLADE_IS_EPROP_BOOL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_BOOL))
-#define GLADE_IS_EPROP_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_BOOL))
-#define GLADE_EPROP_BOOL_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_BOOL, 
GladeEPropBoolClass))
+GLADE_MAKE_EPROP (GladeEPropBool, glade_eprop_bool, GLADE, EPROP_BOOL)
 
 static void
 glade_eprop_bool_finalize (GObject *object)
@@ -2597,9 +2607,10 @@ glade_eprop_bool_active_notify (GObject             *gobject,
                                 GParamSpec          *pspec,
                                 GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GValue val = { 0, };
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   g_value_init (&val, G_TYPE_BOOLEAN);
@@ -2628,19 +2639,14 @@ glade_eprop_bool_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyCheckClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropCheck
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *button;
-} GladeEPropCheck;
+};
 
-GLADE_MAKE_EPROP (GladeEPropCheck, glade_eprop_check)
-#define GLADE_EPROP_CHECK(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_CHECK, 
GladeEPropCheck))
-#define GLADE_EPROP_CHECK_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_CHECK, 
GladeEPropCheckClass))
-#define GLADE_IS_EPROP_CHECK(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_CHECK))
-#define GLADE_IS_EPROP_CHECK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_CHECK))
-#define GLADE_EPROP_CHECK_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_CHECK, 
GladeEPropCheckClass))
+GLADE_MAKE_EPROP (GladeEPropCheck, glade_eprop_check, GLADE, EPROP_CHECK)
 
 static void
 glade_eprop_check_finalize (GObject *object)
@@ -2668,9 +2674,10 @@ glade_eprop_check_active_notify (GObject             *gobject,
                                  GParamSpec          *pspec,
                                  GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GValue val = { 0, };
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   g_value_init (&val, G_TYPE_BOOLEAN);
@@ -2684,11 +2691,12 @@ glade_eprop_check_active_notify (GObject             *gobject,
 static GtkWidget *
 glade_eprop_check_create_input (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropCheck *eprop_check = GLADE_EPROP_CHECK (eprop);
   GladePropertyDef *pclass;
   GtkWidget *label;
 
-  pclass = eprop->priv->property_def;
+  pclass = priv->property_def;
 
   /* Add the property label as the check button's child */
   label = glade_editor_property_get_item_label (eprop);
@@ -2699,7 +2707,7 @@ glade_eprop_check_create_input (GladeEditorProperty *eprop)
                                     glade_property_def_get_is_packing (pclass));
   glade_property_label_set_append_colon (GLADE_PROPERTY_LABEL (label), FALSE);
   glade_property_label_set_custom_text (GLADE_PROPERTY_LABEL (label),
-                                        eprop->priv->custom_text);
+                                        priv->custom_text);
   gtk_widget_show (label);
   
   eprop_check->button = gtk_check_button_new ();
@@ -2719,19 +2727,14 @@ glade_eprop_check_create_input (GladeEditorProperty *eprop)
 /*******************************************************************************
                         GladeEditorPropertyUnicharClass
  *******************************************************************************/
-typedef struct
+struct _GladeEPropUnichar
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *entry;
-} GladeEPropUnichar;
+};
 
-GLADE_MAKE_EPROP (GladeEPropUnichar, glade_eprop_unichar)
-#define GLADE_EPROP_UNICHAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_UNICHAR, 
GladeEPropUnichar))
-#define GLADE_EPROP_UNICHAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_UNICHAR, 
GladeEPropUnicharClass))
-#define GLADE_IS_EPROP_UNICHAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_UNICHAR))
-#define GLADE_IS_EPROP_UNICHAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_UNICHAR))
-#define GLADE_EPROP_UNICHAR_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_UNICHAR, 
GladeEPropUnicharClass))
+GLADE_MAKE_EPROP (GladeEPropUnichar, glade_eprop_unichar, GLADE, EPROP_UNICHAR)
 
 static void
 glade_eprop_unichar_finalize (GObject *object)
@@ -2766,9 +2769,10 @@ glade_eprop_unichar_load (GladeEditorProperty *eprop, GladeProperty *property)
 static void
 glade_eprop_unichar_changed (GtkWidget *entry, GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   const gchar *text;
 
-  if (eprop->priv->loading)
+  if (priv->loading)
     return;
 
   if ((text = gtk_entry_get_text (GTK_ENTRY (entry))) != NULL)
@@ -2791,7 +2795,9 @@ glade_eprop_unichar_delete (GtkEditable         *editable,
                             gint                 end_pos,
                             GladeEditorProperty *eprop)
 {
-  if (eprop->priv->loading)
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  if (priv->loading)
     return;
   gtk_editable_select_region (editable, 0, -1);
   g_signal_stop_emission_by_name (G_OBJECT (editable), "delete_text");
@@ -2804,7 +2810,9 @@ glade_eprop_unichar_insert (GtkWidget *entry,
                             gint *position,
                             GladeEditorProperty *eprop)
 {
-  if (eprop->priv->loading)
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
+  if (priv->loading)
     return;
   g_signal_handlers_block_by_func
       (G_OBJECT (entry), G_CALLBACK (glade_eprop_unichar_changed), eprop);
@@ -2866,19 +2874,14 @@ enum
 #define GLADE_RESPONSE_CLEAR  42
 #define GLADE_RESPONSE_CREATE 43
 
-typedef struct
+struct _GladeEPropObject
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *entry;
-} GladeEPropObject;
+};
 
-GLADE_MAKE_EPROP (GladeEPropObject, glade_eprop_object)
-#define GLADE_EPROP_OBJECT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_OBJECT, 
GladeEPropObject))
-#define GLADE_EPROP_OBJECT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_OBJECT, 
GladeEPropObjectClass))
-#define GLADE_IS_EPROP_OBJECT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_OBJECT))
-#define GLADE_IS_EPROP_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_OBJECT))
-#define GLADE_EPROP_OBJECT_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_OBJECT, 
GladeEPropObjectClass))
+GLADE_MAKE_EPROP (GladeEPropObject, glade_eprop_object, GLADE, EPROP_OBJECT)
 
 static void
 glade_eprop_object_finalize (GObject *object)
@@ -3149,11 +3152,12 @@ glade_eprop_object_view (gboolean radio)
 static gchar *
 glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   gboolean parentless;
   GParamSpec *pspec;
 
-  parentless = glade_property_def_parentless_widget (eprop->priv->property_def);
-  pspec = glade_property_def_get_pspec (eprop->priv->property_def);
+  parentless = glade_property_def_parentless_widget (priv->property_def);
+  pspec = glade_property_def_get_pspec (priv->property_def);
 
   if (GLADE_IS_PARAM_SPEC_OBJECTS (pspec))
     {
@@ -3289,6 +3293,7 @@ glade_editor_property_show_object_dialog (GladeProject *project,
 static void
 glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GtkWidget *dialog, *parent;
   GtkWidget *vbox, *label, *sw;
   GtkWidget *tree_view;
@@ -3301,14 +3306,14 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
   GladeWidgetAdaptor *create_adaptor = NULL;
   GList *selected_list = NULL, *exception_list = NULL;
 
-  widget  = glade_property_get_widget (eprop->priv->property);
+  widget  = glade_property_get_widget (priv->property);
   project = glade_widget_get_project (widget);
   parent  = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
-  pspec   = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec   = glade_property_def_get_pspec (priv->property_def);
 
-  if (glade_property_def_create_type (eprop->priv->property_def))
+  if (glade_property_def_create_type (priv->property_def))
     create_adaptor =
-      glade_widget_adaptor_get_by_name (glade_property_def_create_type (eprop->priv->property_def));
+      glade_widget_adaptor_get_by_name (glade_property_def_create_type (priv->property_def));
   if (!create_adaptor &&
       G_TYPE_IS_INSTANTIATABLE (pspec->value_type) && !G_TYPE_IS_ABSTRACT (pspec->value_type))
     create_adaptor = glade_widget_adaptor_get_by_type (pspec->value_type);
@@ -3363,17 +3368,17 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
 
 
   exception_list = g_list_prepend (exception_list, widget);
-  if (g_value_get_object (glade_property_inline_value (eprop->priv->property)))
+  if (g_value_get_object (glade_property_inline_value (priv->property)))
     selected_list = g_list_prepend (selected_list,
                                     glade_widget_get_from_gobject
                                     (g_value_get_object
-                                     (glade_property_inline_value (eprop->priv->property))));
+                                     (glade_property_inline_value (priv->property))));
 
   tree_view = glade_eprop_object_view (TRUE);
   glade_eprop_object_populate_view (project, GTK_TREE_VIEW (tree_view),
                                     selected_list, exception_list,
                                     pspec->value_type,
-                                    glade_property_def_parentless_widget (eprop->priv->property_def));
+                                    glade_property_def_parentless_widget (priv->property_def));
   g_list_free (selected_list);
   g_list_free (exception_list);
 
@@ -3408,19 +3413,19 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
                                        TRUE);
 
           value = glade_property_def_make_gvalue_from_string
-            (eprop->priv->property_def, glade_widget_get_name (selected), project);
+            (priv->property_def, glade_widget_get_name (selected), project);
 
-          glade_property_get (eprop->priv->property, &old_object);
+          glade_property_get (priv->property, &old_object);
           new_object = g_value_get_object (value);
           new_widget = glade_widget_get_from_gobject (new_object);
 
           glade_command_push_group (_("Setting %s of %s to %s"),
-                                    glade_property_def_get_name (eprop->priv->property_def),
+                                    glade_property_def_get_name (priv->property_def),
                                     glade_widget_get_name (widget), 
                                     glade_widget_get_name (new_widget));
 
           /* Unparent the widget so we can reuse it for this property */
-          if (glade_property_def_parentless_widget (eprop->priv->property_def))
+          if (glade_property_def_parentless_widget (priv->property_def))
             {
               GladeProperty *old_ref;
 
@@ -3458,7 +3463,7 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
       /* translators: Creating 'a widget' for 'a property' of 'a widget' */
       glade_command_push_group (_("Creating %s for %s of %s"),
                                 glade_widget_adaptor_get_display_name (create_adaptor),
-                                glade_property_def_get_name (eprop->priv->property_def),
+                                glade_property_def_get_name (priv->property_def),
                                 glade_widget_get_name (widget));
 
       /* Dont bother if the user canceled the widget */
@@ -3487,7 +3492,7 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
   else if (res == GLADE_RESPONSE_CLEAR)
     {
       GValue *value = 
-        glade_property_def_make_gvalue_from_string (eprop->priv->property_def, NULL, project);
+        glade_property_def_make_gvalue_from_string (priv->property_def, NULL, project);
 
       glade_editor_property_commit (eprop, value);
 
@@ -3502,6 +3507,7 @@ glade_eprop_object_show_dialog (GladeEditorProperty *eprop)
 static void
 glade_eprop_object_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropObject *eprop_object = GLADE_EPROP_OBJECT (eprop);
   gchar *obj_name;
 
@@ -3512,8 +3518,8 @@ glade_eprop_object_load (GladeEditorProperty *eprop, GladeProperty *property)
     return;
 
   if ((obj_name = glade_widget_adaptor_string_from_value
-       (glade_property_def_get_adaptor (eprop->priv->property_def),
-        eprop->priv->property_def, glade_property_inline_value (property))) != NULL)
+       (glade_property_def_get_adaptor (priv->property_def),
+        priv->property_def, glade_property_inline_value (property))) != NULL)
     {
       gtk_entry_set_text (GTK_ENTRY (eprop_object->entry), obj_name);
       g_free (obj_name);
@@ -3546,19 +3552,14 @@ glade_eprop_object_create_input (GladeEditorProperty *eprop)
                         GladeEditorPropertyObjectsClass
  *******************************************************************************/
 
-typedef struct
+struct _GladeEPropObjects
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *entry;
-} GladeEPropObjects;
+};
 
-GLADE_MAKE_EPROP (GladeEPropObjects, glade_eprop_objects)
-#define GLADE_EPROP_OBJECTS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_OBJECTS, 
GladeEPropObjects))
-#define GLADE_EPROP_OBJECTS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_OBJECTS, 
GladeEPropObjectsClass))
-#define GLADE_IS_EPROP_OBJECTS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_OBJECTS))
-#define GLADE_IS_EPROP_OBJECTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_OBJECTS))
-#define GLADE_EPROP_OBJECTS_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_OBJECTS, 
GladeEPropObjectsClass))
+GLADE_MAKE_EPROP (GladeEPropObjects, glade_eprop_objects, GLADE, EPROP_OBJECTS)
 
 static void
 glade_eprop_objects_finalize (GObject *object)
@@ -3570,6 +3571,7 @@ glade_eprop_objects_finalize (GObject *object)
 static void
 glade_eprop_objects_load (GladeEditorProperty *eprop, GladeProperty *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeEPropObjects *eprop_objects = GLADE_EPROP_OBJECTS (eprop);
   gchar *obj_name;
 
@@ -3580,8 +3582,8 @@ glade_eprop_objects_load (GladeEditorProperty *eprop, GladeProperty *property)
     return;
 
   if ((obj_name = glade_widget_adaptor_string_from_value
-       (glade_property_def_get_adaptor (eprop->priv->property_def),
-        eprop->priv->property_def, glade_property_inline_value (property))) != NULL)
+       (glade_property_def_get_adaptor (priv->property_def),
+        priv->property_def, glade_property_inline_value (property))) != NULL)
     {
       gtk_entry_set_text (GTK_ENTRY (eprop_objects->entry), obj_name);
       g_free (obj_name);
@@ -3617,6 +3619,7 @@ glade_eprop_objects_selected_widget (GtkTreeModel *model,
 static void
 glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GtkWidget *dialog, *parent;
   GtkWidget *vbox, *label, *sw;
   GtkWidget *tree_view;
@@ -3629,13 +3632,13 @@ glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
 
   /* It's improbable but possible the editor is visible with no
    * property selected, in this case avoid crashes */
-  if (!eprop->priv->property)
+  if (!priv->property)
     return;
 
-  widget  = glade_property_get_widget (eprop->priv->property);
+  widget  = glade_property_get_widget (priv->property);
   project = glade_widget_get_project (widget);
   parent  = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
-  pspec   = glade_property_def_get_pspec (eprop->priv->property_def);
+  pspec   = glade_property_def_get_pspec (priv->property_def);
 
   dialog = gtk_dialog_new_with_buttons (title,
                                         GTK_WINDOW (parent),
@@ -3678,14 +3681,14 @@ glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
   exception_list = g_list_prepend (exception_list, widget);
 
   /* Build the list of already selected objects */
-  glade_property_get (eprop->priv->property, &selected_objects);
+  glade_property_get (priv->property, &selected_objects);
   for (l = selected_objects; l; l = l->next)
     selected_list = g_list_prepend (selected_list, glade_widget_get_from_gobject (l->data));
 
   glade_eprop_object_populate_view (project, GTK_TREE_VIEW (tree_view),
                                     selected_list, exception_list,
                                     glade_param_spec_objects_get_type (GLADE_PARAM_SPEC_OBJECTS (pspec)),
-                                    glade_property_def_parentless_widget (eprop->priv->property_def));
+                                    glade_property_def_parentless_widget (priv->property_def));
   g_list_free (selected_list);
   g_list_free (exception_list);
 
@@ -3709,7 +3712,7 @@ glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
       if (selected)
         {
           glade_command_push_group (_("Setting %s of %s"),
-                                    glade_property_def_get_name (eprop->priv->property_def),
+                                    glade_property_def_get_name (priv->property_def),
                                     glade_widget_get_name (widget));
 
           /* Make sure the selected widgets have names now
@@ -3723,7 +3726,7 @@ glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
             }
         }
 
-      value = glade_property_def_make_gvalue (eprop->priv->property_def, selected);
+      value = glade_property_def_make_gvalue (priv->property_def, selected);
       glade_editor_property_commit (eprop, value);
 
       if (selected)
@@ -3734,7 +3737,7 @@ glade_eprop_objects_show_dialog (GladeEditorProperty *eprop)
     }
   else if (res == GLADE_RESPONSE_CLEAR)
     {
-      GValue *value = glade_property_def_make_gvalue (eprop->priv->property_def, NULL);
+      GValue *value = glade_property_def_make_gvalue (priv->property_def, NULL);
 
       glade_editor_property_commit (eprop, value);
 
@@ -3795,12 +3798,14 @@ void
 glade_editor_property_load (GladeEditorProperty *eprop,
                             GladeProperty       *property)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
+
   g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
   g_return_if_fail (property == NULL || GLADE_IS_PROPERTY (property));
 
-  eprop->priv->loading = TRUE;
+  priv->loading = TRUE;
   GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->load (eprop, property);
-  eprop->priv->loading = FALSE;
+  priv->loading = FALSE;
 }
 
 
@@ -3816,6 +3821,7 @@ void
 glade_editor_property_load_by_widget (GladeEditorProperty *eprop,
                                       GladeWidget         *widget)
 {
+  GladeEditorPropertyPrivate *priv = glade_editor_property_get_instance_private (eprop);
   GladeProperty *property = NULL;
 
   g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
@@ -3824,31 +3830,31 @@ glade_editor_property_load_by_widget (GladeEditorProperty *eprop,
   if (widget)
     {
       /* properties are allowed to be missing on some internal widgets */
-      if (glade_property_def_get_is_packing (eprop->priv->property_def))
-        property = glade_widget_get_pack_property (widget, glade_property_def_id 
(eprop->priv->property_def));
+      if (glade_property_def_get_is_packing (priv->property_def))
+        property = glade_widget_get_pack_property (widget, glade_property_def_id (priv->property_def));
       else
-        property = glade_widget_get_property (widget, glade_property_def_id (eprop->priv->property_def));
+        property = glade_widget_get_property (widget, glade_property_def_id (priv->property_def));
 
       glade_editor_property_load (eprop, property);
 
-      if (eprop->priv->item_label)
-        glade_property_label_set_property (GLADE_PROPERTY_LABEL (eprop->priv->item_label), property);
+      if (priv->item_label)
+        glade_property_label_set_property (GLADE_PROPERTY_LABEL (priv->item_label), property);
 
       if (property)
         {
-          g_assert (eprop->priv->property_def == glade_property_get_def (property));
+          g_assert (priv->property_def == glade_property_get_def (property));
 
           gtk_widget_show (GTK_WIDGET (eprop));
 
-          if (eprop->priv->item_label)
-            gtk_widget_show (eprop->priv->item_label);
+          if (priv->item_label)
+            gtk_widget_show (priv->item_label);
         }
       else
         {
           gtk_widget_hide (GTK_WIDGET (eprop));
 
-          if (eprop->priv->item_label)
-            gtk_widget_hide (eprop->priv->item_label);
+          if (priv->item_label)
+            gtk_widget_hide (priv->item_label);
         }
     }
   else
diff --git a/gladeui/glade-editor-property.h b/gladeui/glade-editor-property.h
index 3398fc16..d18cf735 100644
--- a/gladeui/glade-editor-property.h
+++ b/gladeui/glade-editor-property.h
@@ -10,34 +10,9 @@ G_BEGIN_DECLS
  *******************************************************************************/
 /* XXX document me ! */
 
-#define GLADE_MAKE_EPROP_TYPE(func, type, parent)                  \
-GType                                                              \
-func ## _get_type (void)                                           \
-{                                                                  \
-  static GType cmd_type = 0;                                       \
-                                                                   \
-  if (!cmd_type)                                                   \
-    {                                                              \
-      static const GTypeInfo info = {                              \
-        sizeof (type ## Class),                                    \
-        (GBaseInitFunc) NULL,                                      \
-        (GBaseFinalizeFunc) NULL,                                  \
-        (GClassInitFunc) func ## _class_init,                      \
-        (GClassFinalizeFunc) NULL,                                 \
-        NULL,                                                      \
-        sizeof (type),                                             \
-        0,                                                         \
-        (GInstanceInitFunc) NULL                                   \
-      };                                                           \
-                                                                   \
-      cmd_type = g_type_register_static (parent, #type, &info, 0); \
-    }                                                              \
-                                                                   \
-  return cmd_type;                                                 \
-}
-
-
-#define GLADE_MAKE_EPROP(type, func)                              \
+#define GLADE_MAKE_EPROP(type, func, MODULE, OBJ_NAME)            \
+G_DECLARE_FINAL_TYPE (type, func, MODULE, OBJ_NAME, GladeEditorProperty) \
+G_DEFINE_TYPE (type, func, GLADE_TYPE_EDITOR_PROPERTY);           \
 static void                                                       \
 func ## _finalize (GObject *object);                              \
 static void                                                       \
@@ -45,40 +20,21 @@ func ## _load (GladeEditorProperty *me, GladeProperty *property); \
 static GtkWidget *                                                \
 func ## _create_input (GladeEditorProperty *me);                  \
 static void                                                       \
-func ## _class_init (gpointer parent_tmp, gpointer notused)       \
+func ## _class_init (type ## Class *klass)                        \
 {                                                                 \
-  GladeEditorPropertyClass *parent = parent_tmp;                  \
-  GObjectClass* object_class;                                     \
-  object_class = G_OBJECT_CLASS (parent);                         \
-  parent->load =  func ## _load;                                  \
-  parent->create_input =  func ## _create_input;                  \
+  GladeEditorPropertyClass *ep_class = GLADE_EDITOR_PROPERTY_CLASS (klass); \
+  GObjectClass* object_class = G_OBJECT_CLASS (klass);            \
+  ep_class->load =  func ## _load;                                \
+  ep_class->create_input =  func ## _create_input;                \
   object_class->finalize = func ## _finalize;                     \
 }                                                                 \
-typedef struct {                                                  \
-        GladeEditorPropertyClass cmd;                             \
-} type ## Class;                                                  \
-GLADE_MAKE_EPROP_TYPE(func, type, GLADE_TYPE_EDITOR_PROPERTY)
-
-
-
-#define GLADE_TYPE_EDITOR_PROPERTY            (glade_editor_property_get_type())
-#define GLADE_EDITOR_PROPERTY(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EDITOR_PROPERTY, GladeEditorProperty))
-#define GLADE_EDITOR_PROPERTY_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EDITOR_PROPERTY, 
GladeEditorPropertyClass))
-#define GLADE_IS_EDITOR_PROPERTY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EDITOR_PROPERTY))
-#define GLADE_IS_EDITOR_PROPERTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EDITOR_PROPERTY))
-#define GLADE_EDITOR_PROPERTY_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EDITOR_PROPERTY, 
GladeEditorPropertyClass))
-
-
-typedef struct _GladeEditorProperty        GladeEditorProperty;
-typedef struct _GladeEditorPropertyClass   GladeEditorPropertyClass;
-typedef struct _GladeEditorPropertyPrivate GladeEditorPropertyPrivate;
-
-struct _GladeEditorProperty
-{
-  GtkBox             parent_instance;
+static void                                                       \
+func ## _init (type *self)                                        \
+{                                                                 \
+}
 
-  GladeEditorPropertyPrivate *priv;
-};
+#define GLADE_TYPE_EDITOR_PROPERTY glade_editor_property_get_type ()
+G_DECLARE_DERIVABLE_TYPE (GladeEditorProperty, glade_editor_property, GLADE, EDITOR_PROPERTY, GtkBox)
 
 struct _GladeEditorPropertyClass {
   GtkBoxClass  parent_class;
@@ -88,16 +44,9 @@ struct _GladeEditorPropertyClass {
   void        (* commit)        (GladeEditorProperty *eprop, GValue *value);
   void       *(* changed)       (GladeEditorProperty *eprop, GladeProperty *property);
 
-  void   (* glade_reserved1)   (void);
-  void   (* glade_reserved2)   (void);
-  void   (* glade_reserved3)   (void);
-  void   (* glade_reserved4)   (void);
+  gpointer padding[4];
 };
 
-
-
-GType                glade_editor_property_get_type           (void) G_GNUC_CONST;
-
 void                 glade_editor_property_load               (GladeEditorProperty *eprop,
                                                                GladeProperty       *property);
 
diff --git a/plugins/gtk+/glade-accels.c b/plugins/gtk+/glade-accels.c
index cb0c4308..f28c47c4 100644
--- a/plugins/gtk+/glade-accels.c
+++ b/plugins/gtk+/glade-accels.c
@@ -128,14 +128,14 @@ enum
   ACCEL_NUM_COLUMNS
 };
 
-typedef struct
+struct _GladeEPropAccel
 {
   GladeEditorProperty parent_instance;
 
   GtkWidget *entry;
   GList *parent_iters;
   GtkTreeModel *model;
-} GladeEPropAccel;
+} ;
 
 typedef struct
 {
@@ -143,13 +143,10 @@ typedef struct
   const gchar *name;                  /* <-- dont free */
 } GladeEpropIterTab;
 
-GLADE_MAKE_EPROP (GladeEPropAccel, glade_eprop_accel)
-#define GLADE_EPROP_ACCEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_ACCEL, 
GladeEPropAccel))
-#define GLADE_EPROP_ACCEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_ACCEL, 
GladeEPropAccelClass))
-#define GLADE_IS_EPROP_ACCEL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_ACCEL))
-#define GLADE_IS_EPROP_ACCEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_ACCEL))
-#define GLADE_EPROP_ACCEL_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ACCEL, 
GladeEPropAccelClass))
-     static void glade_eprop_accel_finalize (GObject * object)
+GLADE_MAKE_EPROP (GladeEPropAccel, glade_eprop_accel, GLADE, EPROP_ACCEL)
+
+static void
+glade_eprop_accel_finalize (GObject * object)
 {
   /* Chain up */
   GObjectClass *parent_class =
diff --git a/plugins/gtk+/glade-attributes.c b/plugins/gtk+/glade-attributes.c
index b508ac0d..0019409e 100644
--- a/plugins/gtk+/glade-attributes.c
+++ b/plugins/gtk+/glade-attributes.c
@@ -88,20 +88,16 @@ glade_attr_glist_get_type (void)
 /**************************************************************
  *              GladeEditorProperty stuff here
  **************************************************************/
-typedef struct
+struct _GladeEPropAttrs
 {
   GladeEditorProperty parent_instance;
 
   GtkTreeModel *model;
 
-} GladeEPropAttrs;
+};
+
+GLADE_MAKE_EPROP (GladeEPropAttrs, glade_eprop_attrs, GLADE, EPROP_ATTRS)
 
-GLADE_MAKE_EPROP (GladeEPropAttrs, glade_eprop_attrs)
-#define GLADE_EPROP_ATTRS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_ATTRS, 
GladeEPropAttrs))
-#define GLADE_EPROP_ATTRS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_EPROP_ATTRS, 
GladeEPropAttrsClass))
-#define GLADE_IS_EPROP_ATTRS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_ATTRS))
-#define GLADE_IS_EPROP_ATTRS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_ATTRS))
-#define GLADE_EPROP_ATTRS_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ATTRS, 
GladeEPropAttrsClass))
 enum
 {
 
diff --git a/plugins/gtk+/glade-cell-renderer-editor.c b/plugins/gtk+/glade-cell-renderer-editor.c
index 5bedf86e..bb292411 100644
--- a/plugins/gtk+/glade-cell-renderer-editor.c
+++ b/plugins/gtk+/glade-cell-renderer-editor.c
@@ -407,7 +407,7 @@ glade_cell_renderer_editor_new (GladeWidgetAdaptor * adaptor,
 /***************************************************************************
  *                             Editor Property                             *
  ***************************************************************************/
-typedef struct
+struct _GladeEPropCellAttribute
 {
   GladeEditorProperty parent_instance;
 
@@ -415,14 +415,10 @@ typedef struct
 
   GtkWidget *spin;
   GtkWidget *combo;
-} GladeEPropCellAttribute;
-
-GLADE_MAKE_EPROP (GladeEPropCellAttribute, glade_eprop_cell_attribute)
-#define GLADE_EPROP_CELL_ATTRIBUTE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EPROP_CELL_ATTRIBUTE, GladeEPropCellAttribute))
-#define GLADE_EPROP_CELL_ATTRIBUTE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GLADE_TYPE_EPROP_CELL_ATTRIBUTE, GladeEPropCellAttributeClass))
-#define GLADE_IS_EPROP_CELL_ATTRIBUTE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EPROP_CELL_ATTRIBUTE))
-#define GLADE_IS_EPROP_CELL_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GLADE_TYPE_EPROP_CELL_ATTRIBUTE))
-#define GLADE_EPROP_CELL_ATTRIBUTE_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), 
GLADE_EPROP_CELL_ATTRIBUTE, GladeEPropCellAttributeClass))
+};
+
+GLADE_MAKE_EPROP (GladeEPropCellAttribute, glade_eprop_cell_attribute, GLADE, EPROP_CELL_ATTRIBUTE)
+
 static void
 glade_eprop_cell_attribute_finalize (GObject *object)
 {
diff --git a/plugins/gtk+/glade-column-types.c b/plugins/gtk+/glade-column-types.c
index 7daf767d..dd016068 100644
--- a/plugins/gtk+/glade-column-types.c
+++ b/plugins/gtk+/glade-column-types.c
@@ -225,7 +225,7 @@ glade_column_type_list_get_type (void)
 }
 
 /**************************** GladeEditorProperty *****************************/
-typedef struct
+struct _GladeEPropColumnTypes
 {
   GladeEditorProperty parent_instance;
 
@@ -241,15 +241,12 @@ typedef struct
 
   GtkTreeViewColumn *name_column;
   GtkTreeViewColumn *type_column;
-} GladeEPropColumnTypes;
-
-GLADE_MAKE_EPROP (GladeEPropColumnTypes, glade_eprop_column_types)
-#define GLADE_EPROP_COLUMN_TYPES(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EPROP_COLUMN_TYPES, GladeEPropColumnTypes))
-#define GLADE_EPROP_COLUMN_TYPES_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GLADE_TYPE_EPROP_COLUMN_TYPES, GladeEPropColumnTypesClass))
-#define GLADE_IS_EPROP_COLUMN_TYPES(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EPROP_COLUMN_TYPES))
-#define GLADE_IS_EPROP_COLUMN_TYPES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GLADE_TYPE_EPROP_COLUMN_TYPES))
-#define GLADE_EPROP_COLUMN_TYPES_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_COLUMN_TYPES, 
GladeEPropColumnTypesClass))
-     static void glade_eprop_column_types_finalize (GObject * object)
+};
+
+GLADE_MAKE_EPROP (GladeEPropColumnTypes, glade_eprop_column_types, GLADE, EPROP_COLUMN_TYPES)
+
+static void
+glade_eprop_column_types_finalize (GObject * object)
 {
   /* Chain up */
   GObjectClass *parent_class =
diff --git a/plugins/gtk+/glade-icon-sources.c b/plugins/gtk+/glade-icon-sources.c
index 9db69853..3ed25b83 100644
--- a/plugins/gtk+/glade-icon-sources.c
+++ b/plugins/gtk+/glade-icon-sources.c
@@ -127,7 +127,7 @@ enum
   NUM_COLUMNS
 };
 
-typedef struct
+struct _GladeEPropIconSources
 {
   GladeEditorProperty parent_instance;
 
@@ -135,15 +135,12 @@ typedef struct
   GtkTreeStore *store;
   GtkTreeViewColumn *filename_column;
   GtkWidget *combo;
-} GladeEPropIconSources;
-
-GLADE_MAKE_EPROP (GladeEPropIconSources, glade_eprop_icon_sources)
-#define GLADE_EPROP_ICON_SOURCES(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EPROP_ICON_SOURCES, GladeEPropIconSources))
-#define GLADE_EPROP_ICON_SOURCES_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GLADE_TYPE_EPROP_ICON_SOURCES, GladeEPropIconSourcesClass))
-#define GLADE_IS_EPROP_ICON_SOURCES(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EPROP_ICON_SOURCES))
-#define GLADE_IS_EPROP_ICON_SOURCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GLADE_TYPE_EPROP_ICON_SOURCES))
-#define GLADE_EPROP_ICON_SOURCES_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ICON_SOURCES, 
GladeEPropIconSourcesClass))
-     static void glade_eprop_icon_sources_finalize (GObject *object)
+};
+
+GLADE_MAKE_EPROP (GladeEPropIconSources, glade_eprop_icon_sources, GLADE, EPROP_ICON_SOURCES)
+
+static void
+glade_eprop_icon_sources_finalize (GObject *object)
 {
   /* Chain up */
   GObjectClass *parent_class =
diff --git a/plugins/gtk+/glade-model-data.c b/plugins/gtk+/glade-model-data.c
index 6adb389a..965ef77a 100644
--- a/plugins/gtk+/glade-model-data.c
+++ b/plugins/gtk+/glade-model-data.c
@@ -245,7 +245,7 @@ enum
   NUM_COLUMNS
 };
 
-typedef struct
+struct _GladeEPropModelData
 {
   GladeEditorProperty parent_instance;
 
@@ -260,14 +260,9 @@ typedef struct
   gboolean setting_focus;
   gint editing_row;
   gint editing_column;
-} GladeEPropModelData;
-
-GLADE_MAKE_EPROP (GladeEPropModelData, glade_eprop_model_data)
-#define GLADE_EPROP_MODEL_DATA(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GLADE_TYPE_EPROP_MODEL_DATA, GladeEPropModelData))
-#define GLADE_EPROP_MODEL_DATA_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), 
GLADE_TYPE_EPROP_MODEL_DATA, GladeEPropModelDataClass))
-#define GLADE_IS_EPROP_MODEL_DATA(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GLADE_TYPE_EPROP_MODEL_DATA))
-#define GLADE_IS_EPROP_MODEL_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GLADE_TYPE_EPROP_MODEL_DATA))
-#define GLADE_EPROP_MODEL_DATA_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_MODEL_DATA, 
GladeEPropModelDataClass))
+};
+
+GLADE_MAKE_EPROP (GladeEPropModelData, glade_eprop_model_data, GLADE, EPROP_MODEL_DATA)
 
 static void eprop_data_focus_editing_cell (GladeEPropModelData *eprop_data);
 
diff --git a/plugins/gtk+/glade-string-list.c b/plugins/gtk+/glade-string-list.c
index d45240c6..8a50b48b 100644
--- a/plugins/gtk+/glade-string-list.c
+++ b/plugins/gtk+/glade-string-list.c
@@ -154,7 +154,7 @@ glade_string_list_to_string (GList *list)
 /**************************************************************
  *              GladeEditorProperty stuff here
  **************************************************************/
-typedef struct
+struct _GladeEPropStringList
 {
   GladeEditorProperty parent_instance;
 
@@ -170,7 +170,7 @@ typedef struct
   guint  changed_id;
   guint  update_id;
   GList *pending_string_list;
-} GladeEPropStringList;
+};
 
 enum
 {
@@ -181,9 +181,7 @@ enum
   NUM_COLUMNS
 };
 
-GLADE_MAKE_EPROP (GladeEPropStringList, glade_eprop_string_list)
-#define GLADE_EPROP_STRING_LIST(obj)                                        \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_EPROP_STRING_LIST, GladeEPropStringList))
+GLADE_MAKE_EPROP (GladeEPropStringList, glade_eprop_string_list, GLADE, EPROP_STRING_LIST)
 
 static void
 glade_eprop_string_list_finalize (GObject *object)


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