[Xfce4-commits] <thunar:master> Second (and last for thunar/) flow of G_DEFINE_ macros.

Nick Schermer nick at xfce.org
Sat Aug 22 21:20:02 CEST 2009


Updating branch refs/heads/master
         to ce34ba48e5e38ea750c27df4a8aec94b39508f42 (commit)
       from 445810287e9b0842920d6d421208ef70a6dad455 (commit)

commit ce34ba48e5e38ea750c27df4a8aec94b39508f42
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Aug 22 20:38:24 2009 +0200

    Second (and last for thunar/) flow of G_DEFINE_ macros.

 thunar/sexy-url-label.c                 |   25 ++++-----
 thunar/thunar-file.c                    |    3 -
 thunar/thunar-job.c                     |    3 -
 thunar/thunar-path-entry.c              |   42 +-------------
 thunar/thunar-permissions-chooser.c     |   36 +-----------
 thunar/thunar-preferences-dialog.c      |   36 +-----------
 thunar/thunar-preferences.c             |   36 +-----------
 thunar/thunar-progress-dialog.c         |   36 +-----------
 thunar/thunar-properties-dialog.c       |   36 +-----------
 thunar/thunar-renamer-dialog.c          |   36 +-----------
 thunar/thunar-renamer-model.c           |   45 +--------------
 thunar/thunar-renamer-progress.c        |   36 +-----------
 thunar/thunar-sendto-model.c            |   28 +---------
 thunar/thunar-session-client.c          |   36 +-----------
 thunar/thunar-shortcuts-icon-renderer.c |   36 +-----------
 thunar/thunar-shortcuts-model.c         |   54 +-----------------
 thunar/thunar-shortcuts-pane.c          |   61 +-------------------
 thunar/thunar-shortcuts-view.c          |    2 +-
 thunar/thunar-simple-job.c              |   34 +++---------
 thunar/thunar-size-label.c              |   36 +-----------
 thunar/thunar-standard-view.c           |   61 ++------------------
 thunar/thunar-statusbar.c               |   29 +---------
 thunar/thunar-templates-action.c        |   27 +--------
 thunar/thunar-text-renderer.c           |   35 +-----------
 thunar/thunar-throbber.c                |   36 +-----------
 thunar/thunar-transfer-job.c            |   28 +---------
 thunar/thunar-trash-action.c            |   36 +-----------
 thunar/thunar-tree-model.c              |   45 +--------------
 thunar/thunar-tree-pane.c               |   63 +-------------------
 thunar/thunar-tree-view.c               |   44 +-------------
 thunar/thunar-user.c                    |   94 ++++++-------------------------
 thunar/thunar-window.c                  |    2 +-
 32 files changed, 82 insertions(+), 1075 deletions(-)

diff --git a/thunar/sexy-url-label.c b/thunar/sexy-url-label.c
index 0830b41..198b2cd 100644
--- a/thunar/sexy-url-label.c
+++ b/thunar/sexy-url-label.c
@@ -102,7 +102,6 @@ static void sexy_url_label_clear_links(SexyUrlLabel *url_label);
 static void sexy_url_label_clear_urls(SexyUrlLabel *url_label);
 static void sexy_url_label_rescan_label(SexyUrlLabel *url_label);
 
-static GtkLabelClass *parent_class = NULL;
 static guint signals[LAST_SIGNAL] = {0};
 
 G_DEFINE_TYPE(SexyUrlLabel, sexy_url_label, GTK_TYPE_LABEL);
@@ -113,8 +112,6 @@ sexy_url_label_class_init(SexyUrlLabelClass *klass)
 	GObjectClass   *object_class = G_OBJECT_CLASS(klass);
 	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
 
-	parent_class = g_type_class_peek_parent(klass);
-
 	object_class->finalize = sexy_url_label_finalize;
 
 	widget_class->realize             = sexy_url_label_realize;
@@ -205,8 +202,8 @@ sexy_url_label_finalize(GObject *obj)
 	sexy_url_label_clear_links(url_label);
 	sexy_url_label_clear_urls(url_label);
 
-	if (G_OBJECT_CLASS(parent_class)->finalize != NULL)
-		G_OBJECT_CLASS(parent_class)->finalize(obj);
+	if (G_OBJECT_CLASS(sexy_url_label_parent_class)->finalize != NULL)
+		G_OBJECT_CLASS(sexy_url_label_parent_class)->finalize(obj);
 }
 
 static gboolean
@@ -290,7 +287,7 @@ sexy_url_label_motion_notify_event(GtkWidget *widget, GdkEventMotion *event)
 	if (priv->active_link != NULL)
 		event->state = 0;
 
-	GTK_WIDGET_CLASS(parent_class)->motion_notify_event(widget, event);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->motion_notify_event(widget, event);
 
 	return FALSE;
 }
@@ -301,8 +298,8 @@ sexy_url_label_leave_notify_event(GtkWidget *widget, GdkEventCrossing *event)
 	SexyUrlLabel *url_label = (SexyUrlLabel *)widget;
 	SexyUrlLabelPrivate *priv = SEXY_URL_LABEL_GET_PRIVATE(url_label);
 
-	if (GTK_WIDGET_CLASS(parent_class)->leave_notify_event != NULL)
-		GTK_WIDGET_CLASS(parent_class)->leave_notify_event(widget, event);
+	if (GTK_WIDGET_CLASS(sexy_url_label_parent_class)->leave_notify_event != NULL)
+		GTK_WIDGET_CLASS(sexy_url_label_parent_class)->leave_notify_event(widget, event);
 
 	if (event->mode == GDK_CROSSING_NORMAL)
 	{
@@ -321,7 +318,7 @@ sexy_url_label_button_press_event(GtkWidget *widget, GdkEventButton *event)
 
 	if (priv->active_link == NULL)
 	{
-		return GTK_WIDGET_CLASS(parent_class)->button_press_event(widget,
+		return GTK_WIDGET_CLASS(sexy_url_label_parent_class)->button_press_event(widget,
 																  event);
 	}
 
@@ -377,7 +374,7 @@ sexy_url_label_realize(GtkWidget *widget)
 	GdkWindowAttr attributes;
 	gint attributes_mask;
 
-	GTK_WIDGET_CLASS(parent_class)->realize(widget);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->realize(widget);
 
 	attributes.window_type = GDK_WINDOW_CHILD;
 	attributes.x = widget->allocation.x;
@@ -414,7 +411,7 @@ sexy_url_label_unrealize(GtkWidget *widget)
 		priv->event_window = NULL;
 	}
 
-	GTK_WIDGET_CLASS(parent_class)->unrealize(widget);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->unrealize(widget);
 }
 
 static void
@@ -423,7 +420,7 @@ sexy_url_label_map(GtkWidget *widget)
 	SexyUrlLabel *url_label = (SexyUrlLabel *)widget;
 	SexyUrlLabelPrivate *priv = SEXY_URL_LABEL_GET_PRIVATE(url_label);
 
-	GTK_WIDGET_CLASS(parent_class)->map(widget);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->map(widget);
 
 	if (priv->event_window != NULL)
 		gdk_window_show(priv->event_window);
@@ -438,7 +435,7 @@ sexy_url_label_unmap(GtkWidget *widget)
 	if (priv->event_window != NULL)
 		gdk_window_hide(priv->event_window);
 
-	GTK_WIDGET_CLASS(parent_class)->map(widget);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->map(widget);
 }
 
 static void
@@ -459,7 +456,7 @@ sexy_url_label_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
 	}
 #endif
 	update_wrap_width(url_label, allocation->width);
-	GTK_WIDGET_CLASS(parent_class)->size_allocate(widget, allocation);
+	GTK_WIDGET_CLASS(sexy_url_label_parent_class)->size_allocate(widget, allocation);
 	pango_layout_set_width(gtk_label_get_layout(GTK_LABEL(url_label)),
 						   allocation->width * PANGO_SCALE);
 
diff --git a/thunar/thunar-file.c b/thunar/thunar-file.c
index fe1819d..f02d34a 100644
--- a/thunar/thunar-file.c
+++ b/thunar/thunar-file.c
@@ -195,9 +195,6 @@ thunar_file_class_init (ThunarFileClass *klass)
   thunar_file_watch_count_quark = g_quark_from_static_string ("thunar-file-watch-count");
   thunar_file_emblem_names_quark = g_quark_from_static_string ("thunar-file-emblem-names");
 
-  /* determine the parent class */
-  thunar_file_parent_class = g_type_class_peek_parent (klass);
-
   /* grab a reference on the user manager */
   user_manager = thunar_user_manager_get_default ();
 
diff --git a/thunar/thunar-job.c b/thunar/thunar-job.c
index aa68fa9..0ac0c86 100644
--- a/thunar/thunar-job.c
+++ b/thunar/thunar-job.c
@@ -102,9 +102,6 @@ thunar_job_class_init (ThunarJobClass *klass)
   /* add our private data for this class */
   g_type_class_add_private (klass, sizeof (ThunarJobPrivate));
 
-  /* determine the parent class */
-  thunar_job_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_job_finalize;
 
diff --git a/thunar/thunar-path-entry.c b/thunar/thunar-path-entry.c
index c0b3ff6..56795f0 100644
--- a/thunar/thunar-path-entry.c
+++ b/thunar/thunar-path-entry.c
@@ -59,9 +59,7 @@ enum
 
 
 
-static void     thunar_path_entry_class_init                    (ThunarPathEntryClass *klass);
 static void     thunar_path_entry_editable_init                 (GtkEditableClass     *iface);
-static void     thunar_path_entry_init                          (ThunarPathEntry      *path_entry);
 static void     thunar_path_entry_finalize                      (GObject              *object);
 static void     thunar_path_entry_get_property                  (GObject              *object,  
                                                                  guint                 prop_id,
@@ -166,44 +164,11 @@ static const GtkTargetEntry drag_targets[] =
 
 
 static GtkEditableClass *thunar_path_entry_editable_parent_iface;
-static GObjectClass     *thunar_path_entry_parent_class;
 
 
 
-GType
-thunar_path_entry_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarPathEntryClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_path_entry_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarPathEntry),
-        0,
-        (GInstanceInitFunc) thunar_path_entry_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo editable_info =
-      {
-        (GInterfaceInitFunc) thunar_path_entry_editable_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_ENTRY, I_("ThunarPathEntry"), &info, 0);
-      g_type_add_interface_static (type, GTK_TYPE_EDITABLE, &editable_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarPathEntry, thunar_path_entry, GTK_TYPE_ENTRY,
+    G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE, thunar_path_entry_editable_init))
 
 
 
@@ -214,9 +179,6 @@ thunar_path_entry_class_init (ThunarPathEntryClass *klass)
   GtkEntryClass  *gtkentry_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_path_entry_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_path_entry_finalize;
   gobject_class->get_property = thunar_path_entry_get_property;
diff --git a/thunar/thunar-permissions-chooser.c b/thunar/thunar-permissions-chooser.c
index ffcd2b9..7e1faff 100644
--- a/thunar/thunar-permissions-chooser.c
+++ b/thunar/thunar-permissions-chooser.c
@@ -72,8 +72,6 @@ enum
 
 
 
-static void                 thunar_permissions_chooser_class_init       (ThunarPermissionsChooserClass  *klass);
-static void                 thunar_permissions_chooser_init             (ThunarPermissionsChooser       *chooser);
 static void                 thunar_permissions_chooser_finalize         (GObject                        *object);
 static void                 thunar_permissions_chooser_get_property     (GObject                        *object,
                                                                          guint                           prop_id,
@@ -151,36 +149,7 @@ struct _ThunarPermissionsChooser
 
 
 
-static GObjectClass *thunar_permissions_chooser_parent_class;
-
-
-
-GType
-thunar_permissions_chooser_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarPermissionsChooserClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_permissions_chooser_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarPermissionsChooser),
-        0,
-        (GInstanceInitFunc) thunar_permissions_chooser_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_VBOX, I_("ThunarPermissionsChooser"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarPermissionsChooser, thunar_permissions_chooser, GTK_TYPE_VBOX)
 
 
 
@@ -189,9 +158,6 @@ thunar_permissions_chooser_class_init (ThunarPermissionsChooserClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_permissions_chooser_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_permissions_chooser_finalize;
   gobject_class->get_property = thunar_permissions_chooser_get_property;
diff --git a/thunar/thunar-preferences-dialog.c b/thunar/thunar-preferences-dialog.c
index 4baa693..125bf58 100644
--- a/thunar/thunar-preferences-dialog.c
+++ b/thunar/thunar-preferences-dialog.c
@@ -37,8 +37,6 @@
 
 
 
-static void thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass);
-static void thunar_preferences_dialog_init       (ThunarPreferencesDialog      *dialog);
 static void thunar_preferences_dialog_finalize   (GObject                      *object);
 static void thunar_preferences_dialog_response   (GtkDialog                    *dialog,
                                                   gint                          response);
@@ -59,36 +57,7 @@ struct _ThunarPreferencesDialog
 
 
 
-static GObjectClass *thunar_preferences_dialog_parent_class;
-
-
-
-GType
-thunar_preferences_dialog_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarPreferencesDialogClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_preferences_dialog_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarPreferencesDialog),
-        0,
-        (GInstanceInitFunc) thunar_preferences_dialog_init,
-        NULL,
-      };
-
-      type = g_type_register_static (XFCE_TYPE_TITLED_DIALOG, I_("ThunarPreferencesDialog"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarPreferencesDialog, thunar_preferences_dialog, XFCE_TYPE_TITLED_DIALOG)
 
 
 
@@ -184,9 +153,6 @@ thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass)
   GtkDialogClass *gtkdialog_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_preferences_dialog_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_preferences_dialog_finalize;
 
diff --git a/thunar/thunar-preferences.c b/thunar/thunar-preferences.c
index daed42f..74f0776 100644
--- a/thunar/thunar-preferences.c
+++ b/thunar/thunar-preferences.c
@@ -88,8 +88,6 @@ enum
 
 
 
-static void     thunar_preferences_class_init         (ThunarPreferencesClass *klass);
-static void     thunar_preferences_init               (ThunarPreferences      *preferences);
 static void     thunar_preferences_finalize           (GObject                *object);
 static void     thunar_preferences_get_property       (GObject                *object,
                                                        guint                   prop_id,
@@ -136,36 +134,7 @@ struct _ThunarPreferences
 
 
 
-static GObjectClass *thunar_preferences_parent_class;
-
-
-
-GType
-thunar_preferences_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarPreferencesClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_preferences_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarPreferences),
-        0,
-        (GInstanceInitFunc) thunar_preferences_init,
-        NULL,
-      };
-
-      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarPreferences"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarPreferences, thunar_preferences, G_TYPE_OBJECT)
 
 
 
@@ -174,9 +143,6 @@ thunar_preferences_class_init (ThunarPreferencesClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_preferences_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_preferences_finalize;
   gobject_class->get_property = thunar_preferences_get_property;
diff --git a/thunar/thunar-progress-dialog.c b/thunar/thunar-progress-dialog.c
index a915386..2d5b4e6 100644
--- a/thunar/thunar-progress-dialog.c
+++ b/thunar/thunar-progress-dialog.c
@@ -39,8 +39,6 @@ enum
 
 
 
-static void              thunar_progress_dialog_class_init   (ThunarProgressDialogClass  *klass);
-static void              thunar_progress_dialog_init         (ThunarProgressDialog       *dialog);
 static void              thunar_progress_dialog_dispose      (GObject                    *object);
 static void              thunar_progress_dialog_get_property (GObject                    *object,
                                                               guint                       prop_id,
@@ -94,36 +92,7 @@ struct _ThunarProgressDialog
 
 
 
-static GObjectClass *thunar_progress_dialog_parent_class;
-
-
-
-GType
-thunar_progress_dialog_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarProgressDialogClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_progress_dialog_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarProgressDialog),
-        0,
-        (GInstanceInitFunc) thunar_progress_dialog_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_DIALOG, I_("ThunarProgressDialog"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarProgressDialog, thunar_progress_dialog, GTK_TYPE_DIALOG)
 
 
 
@@ -133,9 +102,6 @@ thunar_progress_dialog_class_init (ThunarProgressDialogClass *klass)
   GtkDialogClass *gtkdialog_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_progress_dialog_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_progress_dialog_dispose;
   gobject_class->get_property = thunar_progress_dialog_get_property;
diff --git a/thunar/thunar-properties-dialog.c b/thunar/thunar-properties-dialog.c
index 247e619..7dca191 100644
--- a/thunar/thunar-properties-dialog.c
+++ b/thunar/thunar-properties-dialog.c
@@ -71,8 +71,6 @@ enum
 
 
 
-static void     thunar_properties_dialog_class_init           (ThunarPropertiesDialogClass *klass);
-static void     thunar_properties_dialog_init                 (ThunarPropertiesDialog      *dialog);
 static void     thunar_properties_dialog_dispose              (GObject                     *object);
 static void     thunar_properties_dialog_finalize             (GObject                     *object);
 static void     thunar_properties_dialog_get_property         (GObject                     *object,
@@ -137,36 +135,7 @@ struct _ThunarPropertiesDialog
 
 
 
-static GObjectClass *thunar_properties_dialog_parent_class;
-
-
-
-GType
-thunar_properties_dialog_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarPropertiesDialogClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_properties_dialog_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarPropertiesDialog),
-        0,
-        (GInstanceInitFunc) thunar_properties_dialog_init,
-        NULL,
-      };
-
-      type = g_type_register_static (THUNAR_TYPE_ABSTRACT_DIALOG, I_("ThunarPropertiesDialog"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarPropertiesDialog, thunar_properties_dialog, THUNAR_TYPE_ABSTRACT_DIALOG)
 
 
 
@@ -177,9 +146,6 @@ thunar_properties_dialog_class_init (ThunarPropertiesDialogClass *klass)
   GtkBindingSet  *binding_set;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_properties_dialog_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_properties_dialog_dispose;
   gobject_class->finalize = thunar_properties_dialog_finalize;
diff --git a/thunar/thunar-renamer-dialog.c b/thunar/thunar-renamer-dialog.c
index 93a7a41..f75bcfd 100644
--- a/thunar/thunar-renamer-dialog.c
+++ b/thunar/thunar-renamer-dialog.c
@@ -62,8 +62,6 @@ enum
 
 
 
-static void     thunar_renamer_dialog_class_init          (ThunarRenamerDialogClass *klass);
-static void     thunar_renamer_dialog_init                (ThunarRenamerDialog      *renamer_dialog);
 static void     thunar_renamer_dialog_dispose             (GObject                  *object);
 static void     thunar_renamer_dialog_finalize            (GObject                  *object);
 static void     thunar_renamer_dialog_get_property        (GObject                  *object,
@@ -200,36 +198,7 @@ static const GtkTargetEntry drag_targets[] = {
 
 
 
-static GObjectClass *thunar_renamer_dialog_parent_class;
-
-
-
-GType
-thunar_renamer_dialog_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarRenamerDialogClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_renamer_dialog_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarRenamerDialog),
-        0,
-        (GInstanceInitFunc) thunar_renamer_dialog_init,
-        NULL,
-      };
-
-      type = g_type_register_static (THUNAR_TYPE_ABSTRACT_DIALOG, I_("ThunarRenamerDialog"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarRenamerDialog, thunar_renamer_dialog, THUNAR_TYPE_ABSTRACT_DIALOG)
 
 
 
@@ -240,9 +209,6 @@ thunar_renamer_dialog_class_init (ThunarRenamerDialogClass *klass)
   GtkWidgetClass *gtkwidget_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_renamer_dialog_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_renamer_dialog_dispose;
   gobject_class->finalize = thunar_renamer_dialog_finalize;
diff --git a/thunar/thunar-renamer-model.c b/thunar/thunar-renamer-model.c
index a328aa6..7024dca 100644
--- a/thunar/thunar-renamer-model.c
+++ b/thunar/thunar-renamer-model.c
@@ -63,9 +63,7 @@ typedef struct _ThunarRenamerModelItem ThunarRenamerModelItem;
 
 
 
-static void                    thunar_renamer_model_class_init          (ThunarRenamerModelClass *klass);
 static void                    thunar_renamer_model_tree_model_init     (GtkTreeModelIface       *iface);
-static void                    thunar_renamer_model_init                (ThunarRenamerModel      *renamer_model);
 static void                    thunar_renamer_model_finalize            (GObject                 *object);
 static void                    thunar_renamer_model_get_property        (GObject                 *object,
                                                                          guint                    prop_id,
@@ -168,44 +166,8 @@ struct _ThunarRenamerModelItem
 
 
 
-static GObjectClass *thunar_renamer_model_parent_class;
-
-
-
-GType
-thunar_renamer_model_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarRenamerModelClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_renamer_model_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarRenamerModel),
-        0,
-        (GInstanceInitFunc) thunar_renamer_model_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo tree_model_info =
-      {
-        (GInterfaceInitFunc) thunar_renamer_model_tree_model_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarRenamerModel"), &info, 0);
-      g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarRenamerModel, thunar_renamer_model, G_TYPE_OBJECT,
+    G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, thunar_renamer_model_tree_model_init))
 
 
 
@@ -214,9 +176,6 @@ thunar_renamer_model_class_init (ThunarRenamerModelClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_renamer_model_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_renamer_model_finalize;
   gobject_class->get_property = thunar_renamer_model_get_property;
diff --git a/thunar/thunar-renamer-progress.c b/thunar/thunar-renamer-progress.c
index a16a8fb..8e3fa39 100644
--- a/thunar/thunar-renamer-progress.c
+++ b/thunar/thunar-renamer-progress.c
@@ -35,8 +35,6 @@ enum
 
 
 
-static void     thunar_renamer_progress_class_init        (ThunarRenamerProgressClass *klass);
-static void     thunar_renamer_progress_init              (ThunarRenamerProgress      *renamer_progress);
 static void     thunar_renamer_progress_finalize          (GObject                    *object);
 static void     thunar_renamer_progress_destroy           (GtkObject                  *object);
 static gboolean thunar_renamer_progress_next_idle         (gpointer                    user_data);
@@ -65,36 +63,7 @@ struct _ThunarRenamerProgress
 
 
 
-static GObjectClass *thunar_renamer_progress_parent_class;
-
-
-
-GType
-thunar_renamer_progress_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarRenamerProgressClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_renamer_progress_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarRenamerProgress),
-        0,
-        (GInstanceInitFunc) thunar_renamer_progress_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_ALIGNMENT, I_("ThunarRenamerProgress"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarRenamerProgress, thunar_renamer_progress, GTK_TYPE_ALIGNMENT)
 
 
 
@@ -104,9 +73,6 @@ thunar_renamer_progress_class_init (ThunarRenamerProgressClass *klass)
   GtkObjectClass *gtkobject_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_renamer_progress_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_renamer_progress_finalize;
 
diff --git a/thunar/thunar-sendto-model.c b/thunar/thunar-sendto-model.c
index 12b1f96..0d323dd 100644
--- a/thunar/thunar-sendto-model.c
+++ b/thunar/thunar-sendto-model.c
@@ -38,8 +38,6 @@
 
 
 
-static void thunar_sendto_model_class_init (ThunarSendtoModelClass *klass);
-static void thunar_sendto_model_init       (ThunarSendtoModel      *sendto_model);
 static void thunar_sendto_model_finalize   (GObject                *object);
 static void thunar_sendto_model_load       (ThunarSendtoModel      *sendto_model);
 static void thunar_sendto_model_event      (GFileMonitor           *monitor,
@@ -65,28 +63,7 @@ struct _ThunarSendtoModel
 
 
 
-static GObjectClass *thunar_sendto_model_parent_class;
-
-
-
-GType
-thunar_sendto_model_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (G_TYPE_OBJECT,
-                                            I_("ThunarSendtoModel"),
-                                            sizeof (ThunarSendtoModelClass),
-                                            (GClassInitFunc) thunar_sendto_model_class_init,
-                                            sizeof (ThunarSendtoModel),
-                                            (GInstanceInitFunc) thunar_sendto_model_init,
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarSendtoModel, thunar_sendto_model, G_TYPE_OBJECT)
 
 
 
@@ -95,9 +72,6 @@ thunar_sendto_model_class_init (ThunarSendtoModelClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_sendto_model_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_sendto_model_finalize;
 }
diff --git a/thunar/thunar-session-client.c b/thunar/thunar-session-client.c
index d1bd3e2..addc600 100644
--- a/thunar/thunar-session-client.c
+++ b/thunar/thunar-session-client.c
@@ -43,8 +43,6 @@
 
 
 
-static void     thunar_session_client_class_init          (ThunarSessionClientClass *klass);
-static void     thunar_session_client_init                (ThunarSessionClient      *session_client);
 static void     thunar_session_client_finalize            (GObject                  *object);
 #ifdef HAVE_LIBSM
 static gboolean thunar_session_client_connect             (ThunarSessionClient      *session_client,
@@ -84,36 +82,7 @@ struct _ThunarSessionClient
 
 
 
-static GObjectClass *thunar_session_client_parent_class;
-
-
-
-GType
-thunar_session_client_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarSessionClientClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_session_client_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarSessionClient),
-        0,
-        (GInstanceInitFunc) thunar_session_client_init,
-        NULL,
-      };
-
-      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarSessionClient"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarSessionClient, thunar_session_client, G_TYPE_OBJECT)
 
 
 
@@ -122,9 +91,6 @@ thunar_session_client_class_init (ThunarSessionClientClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_session_client_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_session_client_finalize;
 }
diff --git a/thunar/thunar-shortcuts-icon-renderer.c b/thunar/thunar-shortcuts-icon-renderer.c
index 953fb9e..13c110b 100644
--- a/thunar/thunar-shortcuts-icon-renderer.c
+++ b/thunar/thunar-shortcuts-icon-renderer.c
@@ -40,8 +40,6 @@ enum
 
 
 
-static void thunar_shortcuts_icon_renderer_class_init   (ThunarShortcutsIconRendererClass *klass);
-static void thunar_shortcuts_icon_renderer_init         (ThunarShortcutsIconRenderer      *shortcuts_icon_renderer);
 static void thunar_shortcuts_icon_renderer_finalize     (GObject                          *object);
 static void thunar_shortcuts_icon_renderer_get_property (GObject                          *object,
                                                          guint                             prop_id,
@@ -75,36 +73,7 @@ struct _ThunarShortcutsIconRenderer
 
 
 
-static GObjectClass *thunar_shortcuts_icon_renderer_parent_class;
-
-
-
-GType
-thunar_shortcuts_icon_renderer_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarShortcutsIconRendererClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_shortcuts_icon_renderer_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarShortcutsIconRenderer),
-        0,
-        (GInstanceInitFunc) thunar_shortcuts_icon_renderer_init,
-        NULL,
-      };
-
-      type = g_type_register_static (THUNAR_TYPE_ICON_RENDERER, I_("ThunarShortcutsIconRenderer"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarShortcutsIconRenderer, thunar_shortcuts_icon_renderer, THUNAR_TYPE_ICON_RENDERER)
 
 
 
@@ -114,9 +83,6 @@ thunar_shortcuts_icon_renderer_class_init (ThunarShortcutsIconRendererClass *kla
   GtkCellRendererClass *gtkcell_renderer_class;
   GObjectClass         *gobject_class;
 
-  /* determine the parent type class */
-  thunar_shortcuts_icon_renderer_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_shortcuts_icon_renderer_finalize;
   gobject_class->get_property = thunar_shortcuts_icon_renderer_get_property;
diff --git a/thunar/thunar-shortcuts-model.c b/thunar/thunar-shortcuts-model.c
index e442afc..0f458c6 100644
--- a/thunar/thunar-shortcuts-model.c
+++ b/thunar/thunar-shortcuts-model.c
@@ -67,10 +67,8 @@ typedef enum
 
 
 
-static void               thunar_shortcuts_model_class_init         (ThunarShortcutsModelClass *klass);
 static void               thunar_shortcuts_model_tree_model_init    (GtkTreeModelIface         *iface);
 static void               thunar_shortcuts_model_drag_source_init   (GtkTreeDragSourceIface    *iface);
-static void               thunar_shortcuts_model_init               (ThunarShortcutsModel      *model);
 static void               thunar_shortcuts_model_finalize           (GObject                   *object);
 static GtkTreeModelFlags  thunar_shortcuts_model_get_flags          (GtkTreeModel              *tree_model);
 static gint               thunar_shortcuts_model_get_n_columns      (GtkTreeModel              *tree_model);
@@ -173,52 +171,9 @@ struct _ThunarShortcut
 
 
 
-static GObjectClass *thunar_shortcuts_model_parent_class;
-
-
-
-GType
-thunar_shortcuts_model_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarShortcutsModelClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_shortcuts_model_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarShortcutsModel),
-        0,
-        (GInstanceInitFunc) thunar_shortcuts_model_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo tree_model_info =
-      {
-        (GInterfaceInitFunc) thunar_shortcuts_model_tree_model_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo drag_source_info =
-      {
-        (GInterfaceInitFunc) thunar_shortcuts_model_drag_source_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarShortcutsModel"), &info, 0);
-      g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info);
-      g_type_add_interface_static (type, GTK_TYPE_TREE_DRAG_SOURCE, &drag_source_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarShortcutsModel, thunar_shortcuts_model, G_TYPE_OBJECT,
+    G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, thunar_shortcuts_model_tree_model_init)
+    G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_DRAG_SOURCE, thunar_shortcuts_model_drag_source_init))
 
 
     
@@ -227,9 +182,6 @@ thunar_shortcuts_model_class_init (ThunarShortcutsModelClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_shortcuts_model_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_shortcuts_model_finalize;
 }
diff --git a/thunar/thunar-shortcuts-pane.c b/thunar/thunar-shortcuts-pane.c
index 392e01e..4363366 100644
--- a/thunar/thunar-shortcuts-pane.c
+++ b/thunar/thunar-shortcuts-pane.c
@@ -43,11 +43,9 @@ enum
 
 
 
-static void          thunar_shortcuts_pane_class_init            (ThunarShortcutsPaneClass *klass);
 static void          thunar_shortcuts_pane_component_init        (ThunarComponentIface     *iface);
 static void          thunar_shortcuts_pane_navigator_init        (ThunarNavigatorIface     *iface);
 static void          thunar_shortcuts_pane_side_pane_init        (ThunarSidePaneIface      *iface);
-static void          thunar_shortcuts_pane_init                  (ThunarShortcutsPane      *shortcuts_pane);
 static void          thunar_shortcuts_pane_dispose               (GObject                  *object);
 static void          thunar_shortcuts_pane_finalize              (GObject                  *object);
 static void          thunar_shortcuts_pane_get_property          (GObject                  *object,
@@ -98,60 +96,12 @@ static const GtkActionEntry action_entries[] =
   { "sendto-shortcuts", THUNAR_STOCK_SHORTCUTS, "", NULL, NULL, G_CALLBACK (thunar_shortcuts_pane_action_shortcuts_add), },
 };
 
-static GObjectClass *thunar_shortcuts_pane_parent_class;
 
 
-
-GType
-thunar_shortcuts_pane_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarShortcutsPaneClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_shortcuts_pane_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarShortcutsPane),
-        0,
-        (GInstanceInitFunc) thunar_shortcuts_pane_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo component_info =
-      {
-        (GInterfaceInitFunc) thunar_shortcuts_pane_component_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo navigator_info =
-      {
-        (GInterfaceInitFunc) thunar_shortcuts_pane_navigator_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo side_pane_info =
-      {
-        (GInterfaceInitFunc) thunar_shortcuts_pane_side_pane_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarShortcutsPane"), &info, 0);
-      g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_COMPONENT, &component_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_SIDE_PANE, &side_pane_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarShortcutsPane, thunar_shortcuts_pane, GTK_TYPE_SCROLLED_WINDOW,
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_shortcuts_pane_navigator_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_COMPONENT, thunar_shortcuts_pane_component_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_SIDE_PANE, thunar_shortcuts_pane_side_pane_init))
 
 
 
@@ -160,9 +110,6 @@ thunar_shortcuts_pane_class_init (ThunarShortcutsPaneClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_shortcuts_pane_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_shortcuts_pane_dispose;
   gobject_class->finalize = thunar_shortcuts_pane_finalize;
diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c
index e15c83c..40c41b8 100644
--- a/thunar/thunar-shortcuts-view.c
+++ b/thunar/thunar-shortcuts-view.c
@@ -181,7 +181,7 @@ static guint view_signals[LAST_SIGNAL];
 
 
 G_DEFINE_TYPE_WITH_CODE (ThunarShortcutsView, thunar_shortcuts_view, GTK_TYPE_TREE_VIEW,
-                         G_IMPLEMENT_INTERFACE (THUNAR_TYPE_BROWSER, NULL));
+                         G_IMPLEMENT_INTERFACE (THUNAR_TYPE_BROWSER, NULL))
 
 
 
diff --git a/thunar/thunar-simple-job.c b/thunar/thunar-simple-job.c
index dcc6abe..e311ba7 100644
--- a/thunar/thunar-simple-job.c
+++ b/thunar/thunar-simple-job.c
@@ -41,7 +41,6 @@
 
 
 
-static void     thunar_simple_job_class_init (ThunarSimpleJobClass *klass);
 static void     thunar_simple_job_finalize   (GObject              *object);
 static gboolean thunar_simple_job_execute    (ExoJob               *job,
                                               GError              **error);
@@ -62,28 +61,7 @@ struct _ThunarSimpleJob
 
 
 
-static GObjectClass *thunar_simple_job_parent_class;
-
-
-
-GType
-thunar_simple_job_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (THUNAR_TYPE_JOB, 
-                                            "ThunarSimpleJob",
-                                            sizeof (ThunarSimpleJobClass),
-                                            (GClassInitFunc) thunar_simple_job_class_init,
-                                            sizeof (ThunarSimpleJob),
-                                            NULL, 
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarSimpleJob, thunar_simple_job, THUNAR_TYPE_JOB)
 
 
 
@@ -93,9 +71,6 @@ thunar_simple_job_class_init (ThunarSimpleJobClass *klass)
   GObjectClass *gobject_class;
   ExoJobClass  *exojob_class;
 
-  /* determine the parent type class */
-  thunar_simple_job_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_simple_job_finalize;
 
@@ -106,6 +81,13 @@ thunar_simple_job_class_init (ThunarSimpleJobClass *klass)
 
 
 static void
+thunar_simple_job_init (ThunarSimpleJob *simple_job)
+{
+}
+
+
+
+static void
 thunar_simple_job_finalize (GObject *object)
 {
   ThunarSimpleJob *simple_job = THUNAR_SIMPLE_JOB (object);
diff --git a/thunar/thunar-size-label.c b/thunar/thunar-size-label.c
index 25102b5..d5cdba5 100644
--- a/thunar/thunar-size-label.c
+++ b/thunar/thunar-size-label.c
@@ -46,8 +46,6 @@ enum
 
 
 
-static void     thunar_size_label_class_init            (ThunarSizeLabelClass *klass);
-static void     thunar_size_label_init                  (ThunarSizeLabel      *size_label);
 static void     thunar_size_label_finalize              (GObject              *object);
 static void     thunar_size_label_get_property          (GObject              *object,
                                                          guint                 prop_id,
@@ -100,36 +98,7 @@ struct _ThunarSizeLabel
 
 
 
-static GObjectClass *thunar_size_label_parent_class;
-
-
-
-GType
-thunar_size_label_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarSizeLabelClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_size_label_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarSizeLabel),
-        0,
-        (GInstanceInitFunc) thunar_size_label_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_HBOX, I_("ThunarSizeLabel"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarSizeLabel, thunar_size_label, GTK_TYPE_HBOX)
 
 
 
@@ -138,9 +107,6 @@ thunar_size_label_class_init (ThunarSizeLabelClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_size_label_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_size_label_finalize;
   gobject_class->get_property = thunar_size_label_get_property;
diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c
index f048907..241ffa1 100644
--- a/thunar/thunar-standard-view.c
+++ b/thunar/thunar-standard-view.c
@@ -91,11 +91,9 @@ enum
 
 
 
-static void                 thunar_standard_view_class_init                 (ThunarStandardViewClass  *klass);
 static void                 thunar_standard_view_component_init             (ThunarComponentIface     *iface);
 static void                 thunar_standard_view_navigator_init             (ThunarNavigatorIface     *iface);
 static void                 thunar_standard_view_view_init                  (ThunarViewIface          *iface);
-static void                 thunar_standard_view_init                       (ThunarStandardView       *standard_view);
 static GObject             *thunar_standard_view_constructor                (GType                     type,
                                                                              guint                     n_construct_properties,
                                                                              GObjectConstructParam    *construct_properties);
@@ -367,61 +365,14 @@ static const GtkTargetEntry drop_targets[] =
 
 
 
-static guint         standard_view_signals[LAST_SIGNAL];
-static GObjectClass *thunar_standard_view_parent_class;
+static guint standard_view_signals[LAST_SIGNAL];
 
 
 
-GType
-thunar_standard_view_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarStandardViewClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_standard_view_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarStandardView),
-        0,
-        (GInstanceInitFunc) thunar_standard_view_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo component_info =
-      {
-        (GInterfaceInitFunc) thunar_standard_view_component_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo navigator_info =
-      {
-        (GInterfaceInitFunc) thunar_standard_view_navigator_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo view_info =
-      {
-        (GInterfaceInitFunc) thunar_standard_view_view_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarStandardView"), &info, G_TYPE_FLAG_ABSTRACT);
-      g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_COMPONENT, &component_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_VIEW, &view_info);
-    }
-
-  return type;
-}
+G_DEFINE_ABSTRACT_TYPE_WITH_CODE (ThunarStandardView, thunar_standard_view, GTK_TYPE_SCROLLED_WINDOW,
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_standard_view_navigator_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_COMPONENT, thunar_standard_view_component_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_VIEW, thunar_standard_view_view_init))
 
 
 
@@ -434,8 +385,6 @@ thunar_standard_view_class_init (ThunarStandardViewClass *klass)
 
   g_type_class_add_private (klass, sizeof (ThunarStandardViewPrivate));
 
-  thunar_standard_view_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->constructor = thunar_standard_view_constructor;
   gobject_class->dispose = thunar_standard_view_dispose;
diff --git a/thunar/thunar-statusbar.c b/thunar/thunar-statusbar.c
index 41b94d2..5222eaf 100644
--- a/thunar/thunar-statusbar.c
+++ b/thunar/thunar-statusbar.c
@@ -37,8 +37,6 @@ enum
 
 
 
-static void        thunar_statusbar_class_init            (ThunarStatusbarClass *klass);
-static void        thunar_statusbar_init                  (ThunarStatusbar      *statusbar);
 static void        thunar_statusbar_set_property          (GObject              *object,
                                                            guint                 prop_id,
                                                            const GValue         *value,
@@ -59,32 +57,7 @@ struct _ThunarStatusbar
 
 
 
-GType
-thunar_statusbar_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarStatusbarClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_statusbar_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarStatusbar),
-        0,
-        (GInstanceInitFunc) thunar_statusbar_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_STATUSBAR, I_("ThunarStatusbar"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarStatusbar, thunar_statusbar, GTK_TYPE_STATUSBAR)
 
 
 
diff --git a/thunar/thunar-templates-action.c b/thunar/thunar-templates-action.c
index d78129c..2202dc5 100644
--- a/thunar/thunar-templates-action.c
+++ b/thunar/thunar-templates-action.c
@@ -42,8 +42,6 @@ enum
 
 
 
-static void       thunar_templates_action_class_init        (ThunarTemplatesActionClass *klass);
-static void       thunar_templates_action_init              (ThunarTemplatesAction      *templates_action);
 static void       thunar_templates_action_finalize          (GObject                    *object);
 static GtkWidget *thunar_templates_action_create_menu_item  (GtkAction                  *action);
 static void       thunar_templates_action_menu_shown        (GtkWidget                  *menu,
@@ -69,29 +67,11 @@ struct _ThunarTemplatesAction
 
 
 
-static GObjectClass *thunar_templates_action_parent_class;
-static guint         templates_action_signals[LAST_SIGNAL];
+static guint templates_action_signals[LAST_SIGNAL];
 
 
 
-GType
-thunar_templates_action_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (GTK_TYPE_ACTION,
-                                            I_("ThunarTemplatesAction"),
-                                            sizeof (ThunarTemplatesActionClass),
-                                            (GClassInitFunc) thunar_templates_action_class_init,
-                                            sizeof (ThunarTemplatesAction),
-                                            (GInstanceInitFunc) thunar_templates_action_init,
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarTemplatesAction, thunar_templates_action, GTK_TYPE_ACTION)
 
 
 
@@ -101,9 +81,6 @@ thunar_templates_action_class_init (ThunarTemplatesActionClass *klass)
   GtkActionClass *gtkaction_class;
   GObjectClass   *gobject_class;
 
-  /* determine the parent type class */
-  thunar_templates_action_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_templates_action_finalize;
 
diff --git a/thunar/thunar-text-renderer.c b/thunar/thunar-text-renderer.c
index 25e52d4..e12476e 100644
--- a/thunar/thunar-text-renderer.c
+++ b/thunar/thunar-text-renderer.c
@@ -55,8 +55,6 @@ enum
 
 
 
-static void             thunar_text_renderer_class_init                       (ThunarTextRendererClass *klass);
-static void             thunar_text_renderer_init                             (ThunarTextRenderer      *text_renderer);
 static void             thunar_text_renderer_finalize                         (GObject                 *object);
 static void             thunar_text_renderer_get_property                     (GObject                 *object,
                                                                                guint                    prop_id,
@@ -142,37 +140,11 @@ struct _ThunarTextRenderer
 
 
 
-static GObjectClass *thunar_text_renderer_parent_class;
-static guint         text_renderer_signals[LAST_SIGNAL];
+static guint text_renderer_signals[LAST_SIGNAL];
 
 
 
-GType
-thunar_text_renderer_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarTextRendererClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_text_renderer_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarTextRenderer),
-        0,
-        (GInstanceInitFunc) thunar_text_renderer_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_CELL_RENDERER, I_("ThunarTextRenderer"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarTextRenderer, thunar_text_renderer, GTK_TYPE_CELL_RENDERER)
 
 
 
@@ -182,9 +154,6 @@ thunar_text_renderer_class_init (ThunarTextRendererClass *klass)
   GtkCellRendererClass *gtkcell_renderer_class;
   GObjectClass         *gobject_class;
 
-  /* determine the parent type class */
-  thunar_text_renderer_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_text_renderer_finalize;
   gobject_class->get_property = thunar_text_renderer_get_property;
diff --git a/thunar/thunar-throbber.c b/thunar/thunar-throbber.c
index 547f3b3..4bcd087 100644
--- a/thunar/thunar-throbber.c
+++ b/thunar/thunar-throbber.c
@@ -39,8 +39,6 @@ enum
 
 
 
-static void     thunar_throbber_class_init    (ThunarThrobberClass  *klass);
-static void     thunar_throbber_init          (ThunarThrobber       *throbber);
 static void     thunar_throbber_dispose       (GObject              *object);
 static void     thunar_throbber_get_property  (GObject              *object,
                                                guint                 prop_id,
@@ -79,36 +77,7 @@ struct _ThunarThrobber
 
 
 
-static GObjectClass *thunar_throbber_parent_class;
-
-
-
-GType
-thunar_throbber_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarThrobberClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_throbber_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarThrobber),
-        0,
-        (GInstanceInitFunc) thunar_throbber_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_WIDGET, I_("ThunarThrobber"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarThrobber, thunar_throbber, GTK_TYPE_WIDGET)
 
 
 
@@ -119,9 +88,6 @@ thunar_throbber_class_init (ThunarThrobberClass *klass)
   GObjectClass   *gobject_class;
   GdkPixbuf      *icon;
 
-  /* determine the parent type class */
-  thunar_throbber_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_throbber_dispose;
   gobject_class->get_property = thunar_throbber_get_property;
diff --git a/thunar/thunar-transfer-job.c b/thunar/thunar-transfer-job.c
index 6d5a5f7..f661229 100644
--- a/thunar/thunar-transfer-job.c
+++ b/thunar/thunar-transfer-job.c
@@ -38,8 +38,6 @@ typedef struct _ThunarTransferNode ThunarTransferNode;
 
 
 
-static void     thunar_transfer_job_class_init   (ThunarTransferJobClass *klass);
-static void     thunar_transfer_job_init         (ThunarTransferJob      *job);
 static void     thunar_transfer_job_finalize     (GObject                *object);
 static gboolean thunar_transfer_job_execute      (ExoJob                 *job,
                                                   GError                **error);
@@ -74,28 +72,7 @@ struct _ThunarTransferNode
 
 
 
-static GObjectClass *thunar_transfer_job_parent_class = NULL;
-
-
-
-GType
-thunar_transfer_job_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (THUNAR_TYPE_JOB, 
-                                            "ThunarTransferJob",
-                                            sizeof (ThunarTransferJobClass),
-                                            (GClassInitFunc) thunar_transfer_job_class_init,
-                                            sizeof (ThunarTransferJob),
-                                            (GInstanceInitFunc) thunar_transfer_job_init,
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarTransferJob, thunar_transfer_job, THUNAR_TYPE_JOB)
 
 
 
@@ -105,9 +82,6 @@ thunar_transfer_job_class_init (ThunarTransferJobClass *klass)
   GObjectClass *gobject_class;
   ExoJobClass  *exojob_class;
 
-  /* Determine the parent type class */
-  thunar_transfer_job_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_transfer_job_finalize; 
 
diff --git a/thunar/thunar-trash-action.c b/thunar/thunar-trash-action.c
index 39f89bc..8dabf5c 100644
--- a/thunar/thunar-trash-action.c
+++ b/thunar/thunar-trash-action.c
@@ -29,8 +29,6 @@
 
 
 
-static void thunar_trash_action_class_init (ThunarTrashActionClass *klass);
-static void thunar_trash_action_init       (ThunarTrashAction      *trash_action);
 static void thunar_trash_action_finalize   (GObject                *object);
 static void thunar_trash_action_changed    (ThunarTrashAction      *trash_action,
                                             ThunarFile             *trash_bin);
@@ -49,36 +47,7 @@ struct _ThunarTrashAction
 
 
 
-static GObjectClass *thunar_trash_action_parent_class;
-
-
-
-GType
-thunar_trash_action_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarTrashActionClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_trash_action_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarTrashAction),
-        0,
-        (GInstanceInitFunc) thunar_trash_action_init,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_ACTION, I_("ThunarTrashAction"), &info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarTrashAction, thunar_trash_action, GTK_TYPE_ACTION)
 
 
 
@@ -87,9 +56,6 @@ thunar_trash_action_class_init (ThunarTrashActionClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_trash_action_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_trash_action_finalize;
 }
diff --git a/thunar/thunar-tree-model.c b/thunar/thunar-tree-model.c
index e52c8c5..b6d9a29 100644
--- a/thunar/thunar-tree-model.c
+++ b/thunar/thunar-tree-model.c
@@ -61,9 +61,7 @@ typedef struct _ThunarTreeModelItem ThunarTreeModelItem;
 
 
 
-static void                 thunar_tree_model_class_init              (ThunarTreeModelClass   *klass);
 static void                 thunar_tree_model_tree_model_init         (GtkTreeModelIface      *iface);
-static void                 thunar_tree_model_init                    (ThunarTreeModel        *model);
 static void                 thunar_tree_model_finalize                (GObject                *object);
 static void                 thunar_tree_model_get_property            (GObject                *object,
                                                                        guint                   prop_id,
@@ -220,44 +218,8 @@ typedef struct
 
 
 
-static GObjectClass *thunar_tree_model_parent_class;
-
-
-
-GType
-thunar_tree_model_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarTreeModelClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_tree_model_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarTreeModel),
-        0,
-        (GInstanceInitFunc) thunar_tree_model_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo tree_model_info =
-      {
-        (GInterfaceInitFunc) thunar_tree_model_tree_model_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (G_TYPE_OBJECT, I_("ThunarTreeModel"), &info, 0);
-      g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &tree_model_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarTreeModel, thunar_tree_model, G_TYPE_OBJECT,
+    G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, thunar_tree_model_tree_model_init))
 
 
 
@@ -266,9 +228,6 @@ thunar_tree_model_class_init (ThunarTreeModelClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_tree_model_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_tree_model_finalize;
   gobject_class->get_property = thunar_tree_model_get_property;
diff --git a/thunar/thunar-tree-pane.c b/thunar/thunar-tree-pane.c
index 7196e10..6f9c8e4 100644
--- a/thunar/thunar-tree-pane.c
+++ b/thunar/thunar-tree-pane.c
@@ -38,11 +38,9 @@ enum
 
 
 
-static void          thunar_tree_pane_class_init            (ThunarTreePaneClass  *klass);
 static void          thunar_tree_pane_component_init        (ThunarComponentIface *iface);
 static void          thunar_tree_pane_navigator_init        (ThunarNavigatorIface *iface);
 static void          thunar_tree_pane_side_pane_init        (ThunarSidePaneIface  *iface);
-static void          thunar_tree_pane_init                  (ThunarTreePane       *tree_pane);
 static void          thunar_tree_pane_dispose               (GObject              *object);
 static void          thunar_tree_pane_get_property          (GObject              *object,
                                                              guint                 prop_id,
@@ -77,60 +75,10 @@ struct _ThunarTreePane
 
 
 
-static GObjectClass *thunar_tree_pane_parent_class;
-
-
-
-GType
-thunar_tree_pane_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarTreePaneClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_tree_pane_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarTreePane),
-        0,
-        (GInstanceInitFunc) thunar_tree_pane_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo component_info =
-      {
-        (GInterfaceInitFunc) thunar_tree_pane_component_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo navigator_info =
-      {
-        (GInterfaceInitFunc) thunar_tree_pane_navigator_init,
-        NULL,
-        NULL,
-      };
-
-      static const GInterfaceInfo side_pane_info =
-      {
-        (GInterfaceInitFunc) thunar_tree_pane_side_pane_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_SCROLLED_WINDOW, I_("ThunarTreePane"), &info, 0);
-      g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_COMPONENT, &component_info);
-      g_type_add_interface_static (type, THUNAR_TYPE_SIDE_PANE, &side_pane_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarTreePane, thunar_tree_pane, GTK_TYPE_SCROLLED_WINDOW,
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_tree_pane_navigator_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_COMPONENT, thunar_tree_pane_component_init)
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_SIDE_PANE, thunar_tree_pane_side_pane_init))
 
 
 
@@ -139,9 +87,6 @@ thunar_tree_pane_class_init (ThunarTreePaneClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_tree_pane_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->dispose = thunar_tree_pane_dispose;
   gobject_class->get_property = thunar_tree_pane_get_property;
diff --git a/thunar/thunar-tree-view.c b/thunar/thunar-tree-view.c
index 9e8f218..8b71bc4 100644
--- a/thunar/thunar-tree-view.c
+++ b/thunar/thunar-tree-view.c
@@ -75,9 +75,7 @@ enum
 
 
 
-static void                     thunar_tree_view_class_init                   (ThunarTreeViewClass     *klass);
 static void                     thunar_tree_view_navigator_init               (ThunarNavigatorIface    *iface);
-static void                     thunar_tree_view_init                         (ThunarTreeView          *view);
 static void                     thunar_tree_view_finalize                     (GObject                 *object);
 static void                     thunar_tree_view_get_property                 (GObject                 *object,
                                                                                guint                    prop_id,
@@ -259,45 +257,12 @@ static const GtkTargetEntry drop_targets[] = {
 
 
 
-static GObjectClass *thunar_tree_view_parent_class;
-static guint         tree_view_signals[LAST_SIGNAL];
+static guint tree_view_signals[LAST_SIGNAL];
 
 
 
-GType
-thunar_tree_view_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      static const GTypeInfo info =
-      {
-        sizeof (ThunarTreeViewClass),
-        NULL,
-        NULL,
-        (GClassInitFunc) thunar_tree_view_class_init,
-        NULL,
-        NULL,
-        sizeof (ThunarTreeView),
-        0,
-        (GInstanceInitFunc) thunar_tree_view_init,
-        NULL,
-      };
-
-      static const GInterfaceInfo navigator_info =
-      {
-        (GInterfaceInitFunc) thunar_tree_view_navigator_init,
-        NULL,
-        NULL,
-      };
-
-      type = g_type_register_static (GTK_TYPE_TREE_VIEW, I_("ThunarTreeView"), &info, 0);
-      g_type_add_interface_static (type, THUNAR_TYPE_NAVIGATOR, &navigator_info);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE_WITH_CODE (ThunarTreeView, thunar_tree_view, GTK_TYPE_TREE_VIEW,
+    G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_tree_view_navigator_init))
 
 
 
@@ -309,9 +274,6 @@ thunar_tree_view_class_init (ThunarTreeViewClass *klass)
   GtkBindingSet    *binding_set;
   GObjectClass     *gobject_class;
 
-  /* determine the parent type class */
-  thunar_tree_view_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_tree_view_finalize;
   gobject_class->get_property = thunar_tree_view_get_property;
diff --git a/thunar/thunar-user.c b/thunar/thunar-user.c
index 0d1be62..9d317c8 100644
--- a/thunar/thunar-user.c
+++ b/thunar/thunar-user.c
@@ -60,7 +60,6 @@
 
 
 
-static void         thunar_group_class_init (ThunarGroupClass *klass);
 static void         thunar_group_finalize   (GObject          *object);
 static ThunarGroup *thunar_group_new        (guint32           id);
 
@@ -81,41 +80,24 @@ struct _ThunarGroup
 
 
 
-static GObjectClass *thunar_group_parent_class;
+G_DEFINE_TYPE (ThunarGroup, thunar_group, G_TYPE_OBJECT)
 
 
 
-GType
-thunar_group_get_type (void)
+static void
+thunar_group_class_init (ThunarGroupClass *klass)
 {
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (G_TYPE_OBJECT,
-                                            "ThunarGroup",
-                                            sizeof (ThunarGroupClass),
-                                            (GClassInitFunc) thunar_group_class_init,
-                                            sizeof (ThunarGroup),
-                                            NULL,
-                                            0);
-    }
+  GObjectClass *gobject_class;
 
-  return type;
+  gobject_class = G_OBJECT_CLASS (klass);
+  gobject_class->finalize = thunar_group_finalize;
 }
 
 
 
 static void
-thunar_group_class_init (ThunarGroupClass *klass)
+thunar_group_init (ThunarGroup *group)
 {
-  GObjectClass *gobject_class;
-
-  /* determine the parent class */
-  thunar_group_parent_class = g_type_class_peek_parent (klass);
-
-  gobject_class = G_OBJECT_CLASS (klass);
-  gobject_class->finalize = thunar_group_finalize;
 }
 
 
@@ -195,8 +177,6 @@ thunar_group_get_name (ThunarGroup *group)
 
 
 
-
-static void        thunar_user_class_init (ThunarUserClass *klass);
 static void        thunar_user_finalize   (GObject         *object);
 static void        thunar_user_load       (ThunarUser      *user);
 static ThunarUser *thunar_user_new        (guint32          id);
@@ -221,29 +201,11 @@ struct _ThunarUser
 
 
 
-static guint32       thunar_user_effective_uid;
-static GObjectClass *thunar_user_parent_class;
+static guint32 thunar_user_effective_uid;
 
 
 
-GType
-thunar_user_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (G_TYPE_OBJECT,
-                                            "ThunarUser",
-                                            sizeof (ThunarUserClass),
-                                            (GClassInitFunc) thunar_user_class_init,
-                                            sizeof (ThunarUser),
-                                            NULL,
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarUser, thunar_user, G_TYPE_OBJECT)
 
 
 
@@ -252,9 +214,6 @@ thunar_user_class_init (ThunarUserClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent class */
-  thunar_user_parent_class = g_type_class_peek_parent (klass);
-
   /* determine the current process' effective user id, we do
    * this only once to avoid the syscall overhead on every
    * is_me() invokation.
@@ -268,6 +227,13 @@ thunar_user_class_init (ThunarUserClass *klass)
 
 
 static void
+thunar_user_init (ThunarUser *user)
+{
+}
+
+
+
+static void
 thunar_user_finalize (GObject *object)
 {
   ThunarUser *user = THUNAR_USER (object);
@@ -531,8 +497,6 @@ thunar_user_is_me (ThunarUser *user)
 
 
 
-static void     thunar_user_manager_class_init          (ThunarUserManagerClass *klass);
-static void     thunar_user_manager_init                (ThunarUserManager      *manager);
 static void     thunar_user_manager_finalize            (GObject                *object);
 static gboolean thunar_user_manager_flush_timer         (gpointer                user_data);
 static void     thunar_user_manager_flush_timer_destroy (gpointer                user_data);
@@ -556,28 +520,7 @@ struct _ThunarUserManager
 
 
 
-static GObjectClass *thunar_user_manager_parent_class;
-
-
-
-GType
-thunar_user_manager_get_type (void)
-{
-  static GType type = G_TYPE_INVALID;
-
-  if (G_UNLIKELY (type == G_TYPE_INVALID))
-    {
-      type = g_type_register_static_simple (G_TYPE_OBJECT,
-                                            "ThunarUserManager",
-                                            sizeof (ThunarUserManagerClass),
-                                            (GClassInitFunc) thunar_user_manager_class_init,
-                                            sizeof (ThunarUserManager),
-                                            (GInstanceInitFunc) thunar_user_manager_init,
-                                            0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (ThunarUserManager, thunar_user_manager, G_TYPE_OBJECT)
 
 
 
@@ -586,9 +529,6 @@ thunar_user_manager_class_init (ThunarUserManagerClass *klass)
 {
   GObjectClass *gobject_class;
 
-  /* determine the parent type class */
-  thunar_user_manager_parent_class = g_type_class_peek_parent (klass);
-
   gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = thunar_user_manager_finalize;
 }
diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c
index 455d4d6..17a8e5c 100644
--- a/thunar/thunar-window.c
+++ b/thunar/thunar-window.c
@@ -330,7 +330,7 @@ static guint window_signals[LAST_SIGNAL];
 
 
 G_DEFINE_TYPE_WITH_CODE (ThunarWindow, thunar_window, GTK_TYPE_WINDOW,
-                         G_IMPLEMENT_INTERFACE (THUNAR_TYPE_BROWSER, NULL));
+                         G_IMPLEMENT_INTERFACE (THUNAR_TYPE_BROWSER, NULL))
 
 
 



More information about the Xfce4-commits mailing list