Index: widgets/text/e-text-model-uri.c
===================================================================
--- widgets/text/e-text-model-uri.c	(revision 33820)
+++ widgets/text/e-text-model-uri.c	(working copy)
@@ -51,15 +51,7 @@
 	gint offset, len;
 };
 
-#define PARENT_TYPE E_TYPE_TEXT_MODEL
-static GtkObject *parent_class;
-
-E_MAKE_TYPE (e_text_model_uri,
-	     "ETextModelURI",
-	     ETextModelURI,
-	     e_text_model_uri_class_init,
-	     e_text_model_uri_init,
-	     PARENT_TYPE)
+G_DEFINE_TYPE (ETextModelURI, e_text_model_uri, E_TYPE_TEXT_MODEL)
 	     
 static void
 e_text_model_uri_class_init (ETextModelURIClass *klass)
@@ -70,8 +62,6 @@
 	object_class = (GObjectClass *) klass;
 	model_class = E_TEXT_MODEL_CLASS (klass);
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->dispose = e_text_model_uri_dispose;
 
 	model_class->object_activated = e_text_model_uri_activate_nth_object;
@@ -105,8 +95,8 @@
 	g_list_free (model_uri->uris);
 	model_uri->uris = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_text_model_uri_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_text_model_uri_parent_class)->dispose) (object);
 
 }
 
@@ -254,8 +244,8 @@
 	if (model_uri->objectify_idle == 0)
 		model_uri->objectify_idle = g_idle_add (objectify_idle_cb, model);
 
-	if (E_TEXT_MODEL_CLASS(parent_class)->objectify)
-		E_TEXT_MODEL_CLASS(parent_class)->objectify (model);
+	if (E_TEXT_MODEL_CLASS(e_text_model_uri_parent_class)->objectify)
+		E_TEXT_MODEL_CLASS(e_text_model_uri_parent_class)->objectify (model);
 }
 
 static void
@@ -288,8 +278,8 @@
 
 	
 
-	if (E_TEXT_MODEL_CLASS (parent_class)->validate_pos)
-		pos = E_TEXT_MODEL_CLASS (parent_class)->validate_pos (model, pos);
+	if (E_TEXT_MODEL_CLASS (e_text_model_uri_parent_class)->validate_pos)
+		pos = E_TEXT_MODEL_CLASS (e_text_model_uri_parent_class)->validate_pos (model, pos);
 
 	return pos;
 }
Index: widgets/text/e-completion-view.c
===================================================================
--- widgets/text/e-completion-view.c	(revision 33820)
+++ widgets/text/e-completion-view.c	(working copy)
@@ -59,11 +59,6 @@
 static void    e_completion_view_init       (ECompletionView *completion);
 static void    e_completion_view_dispose    (GObject *object);
 
-#define PARENT_TYPE GTK_TYPE_EVENT_BOX
-static GtkObjectClass *parent_class;
-
-
-
 static gint
 e_completion_view_local_key_press_handler (GtkWidget *w, GdkEventKey *ev)
 {
@@ -199,21 +194,14 @@
 	}
 }
 
-E_MAKE_TYPE (e_completion_view,
-	     "ECompletionView",
-	     ECompletionView,
-	     e_completion_view_class_init,
-	     e_completion_view_init,
-	     PARENT_TYPE)
-	     
+G_DEFINE_TYPE (ECompletionView, e_completion_view, GTK_TYPE_EVENT_BOX)
+
 static void
 e_completion_view_class_init (ECompletionViewClass *klass)
 {
 	GObjectClass *object_class = (GObjectClass *) klass;
 	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	e_completion_view_signals[E_COMPLETION_VIEW_NONEMPTY] =
 		g_signal_new ("nonempty",
 			      G_OBJECT_CLASS_TYPE (object_class),
@@ -309,8 +297,8 @@
 		g_object_unref (cv->completion);
 	cv->completion = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_completion_view_parent_class)->dispose)
+		(G_OBJECT_CLASS (e_completion_view_parent_class)->dispose) (object);
 }
 
 static void
Index: widgets/text/e-text-model.c
===================================================================
--- widgets/text/e-text-model.c	(revision 33820)
+++ widgets/text/e-text-model.c	(working copy)
@@ -61,27 +61,8 @@
 static void         e_text_model_real_insert_length     (ETextModel *model, gint postion, const gchar *text, gint length);
 static void         e_text_model_real_delete            (ETextModel *model, gint postion, gint length);
 
-#define PARENT_TYPE G_TYPE_OBJECT
-static GObject *parent_class;
+G_DEFINE_TYPE (ETextModel, e_text_model, G_TYPE_OBJECT)
 
-
-
-/**
- * e_text_model_get_type:
- * @void: 
- * 
- * Registers the &ETextModel class if necessary, and returns the type ID
- * associated to it.
- * 
- * Return value: The type ID of the &ETextModel class.
- **/
-E_MAKE_TYPE (e_text_model,
-	     "ETextModel",
-	     ETextModel,
-	     e_text_model_class_init,
-	     e_text_model_init,
-	     PARENT_TYPE)
-
 /* Class initialization function for the text item */
 static void
 e_text_model_class_init (ETextModelClass *klass)
@@ -90,8 +71,6 @@
 
 	object_class = (GObjectClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	e_text_model_signals[E_TEXT_MODEL_CHANGED] =
 		g_signal_new ("changed",
 			      G_OBJECT_CLASS_TYPE (object_class),
@@ -178,8 +157,8 @@
 		model->priv = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		G_OBJECT_CLASS (parent_class)->dispose (object);
+	if (G_OBJECT_CLASS (e_text_model_parent_class)->dispose)
+		G_OBJECT_CLASS (e_text_model_parent_class)->dispose (object);
 }
 
 static gint
Index: widgets/text/e-text.c
===================================================================
--- widgets/text/e-text.c	(revision 33820)
+++ widgets/text/e-text.c	(working copy)
@@ -58,7 +58,7 @@
 
 #include "e-text.h"
 
-#define PARENT_TYPE (gnome_canvas_item_get_type())
+G_DEFINE_TYPE (EText, e_text, GNOME_TYPE_CANVAS_ITEM)
 
 #define BORDER_INDENT 3
 #define d(x)
@@ -168,7 +168,6 @@
 						gint          n_chars,
 						EText        *text);
 
-static GnomeCanvasItemClass *parent_class;
 static GdkAtom clipboard_atom = GDK_NONE;
 
 
@@ -272,8 +271,8 @@
 		text->im_context = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_text_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_text_parent_class)->dispose) (object);
 }
 
 static void
@@ -1194,8 +1193,8 @@
 
 	text = E_TEXT (item);
 
-	if (parent_class->update)
-		(* parent_class->update) (item, affine, clip_path, flags);
+	if (GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->update)
+		(* GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->update) (item, affine, clip_path, flags);
 
 	if ( text->needs_recalc_bounds
 	     || (flags & GNOME_CANVAS_UPDATE_AFFINE)) {
@@ -1234,8 +1233,8 @@
 
 	text = E_TEXT (item);
 
-	if (parent_class->realize)
-		(* parent_class->realize) (item);
+	if (GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->realize)
+		(* GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->realize) (item);
 
 	create_layout (text);
 
@@ -1268,8 +1267,8 @@
 	gdk_cursor_unref (text->default_cursor);
 	text->default_cursor = NULL;
 
-	if (parent_class->unrealize)
-		(* parent_class->unrealize) (item);
+	if (GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->unrealize)
+		(* GNOME_CANVAS_ITEM_CLASS (e_text_parent_class)->unrealize) (item);
 }
 
 static void
@@ -2481,8 +2480,8 @@
 	}
 	if (return_val)
 		return return_val;
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->event)
-		return GNOME_CANVAS_ITEM_CLASS(parent_class)->event(item, event);
+	if (GNOME_CANVAS_ITEM_CLASS(e_text_parent_class)->event)
+		return GNOME_CANVAS_ITEM_CLASS(e_text_parent_class)->event(item, event);
 	else
 		return 0;
 }
@@ -3410,8 +3409,6 @@
 	gobject_class = (GObjectClass *) klass;
 	item_class = (GnomeCanvasItemClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	gobject_class->dispose = e_text_dispose;
 	gobject_class->set_property = e_text_set_property;
 	gobject_class->get_property = e_text_get_property;
@@ -3803,24 +3800,7 @@
 	e_canvas_item_set_reflow_callback(GNOME_CANVAS_ITEM(text), e_text_reflow);
 }
 
-/**
- * e_text_get_type:
- * @void: 
- * 
- * Registers the &EText class if necessary, and returns the type ID
- * associated to it.
- * 
- * Return value: The type ID of the &EText class.
- **/
-E_MAKE_TYPE (e_text,
-	     "EText",
-	     EText,
-	     e_text_class_init,
-	     e_text_init,
-	     PARENT_TYPE)
 
-
-
 /* IM Context Callbacks */
 static void
 e_text_commit_cb (GtkIMContext *context,
Index: widgets/text/e-completion-callbacks.c
===================================================================
--- widgets/text/e-completion-callbacks.c	(revision 33820)
+++ widgets/text/e-completion-callbacks.c	(working copy)
@@ -38,25 +38,13 @@
 static void     callbacks_request_completion    (ECompletion *comp, const gchar *search_text, gint pos, gint limit);
 static void     callbacks_end_completion        (ECompletion *comp);
 
-#define PARENT_TYPE E_COMPLETION_TYPE
-static ECompletionClass *parent_class;
+G_DEFINE_TYPE (ECompletionCallbacks, e_completion_callbacks, E_COMPLETION_TYPE)
 
-
-
-E_MAKE_TYPE (e_completion_callbacks,
-	     "ECompletionCallbacks",
-	     ECompletionCallbacks,
-	     e_completion_callbacks_class_init,
-	     e_completion_callbacks_init,
-	     PARENT_TYPE)
-
 static void
 e_completion_callbacks_class_init (ECompletionCallbacksClass *klass)
 {
 	ECompletionClass *comp_class = (ECompletionClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	comp_class->request_completion = callbacks_request_completion;
 	comp_class->end_completion = callbacks_end_completion;
 }
Index: widgets/text/e-entry.c
===================================================================
--- widgets/text/e-entry.c	(revision 33820)
+++ widgets/text/e-entry.c	(working copy)
@@ -50,10 +50,8 @@
 
 #define d(x)
 
-#define PARENT_TYPE gtk_table_get_type ()
+G_DEFINE_TYPE (EEntry, e_entry, GTK_TYPE_TABLE)
 
-static GtkObjectClass *parent_class;
-
 enum {
 	E_ENTRY_CHANGED,
 	E_ENTRY_ACTIVATE,
@@ -296,10 +294,9 @@
 }
 
 static void
-e_entry_init (GtkObject *object)
+e_entry_init (EEntry *entry)
 {
-	EEntry *entry = E_ENTRY (object);
-	GtkTable *gtk_table = GTK_TABLE (object);
+	GtkTable *gtk_table = GTK_TABLE (entry);
 
 	entry->priv = g_new0 (EEntryPrivate, 1);
 
@@ -1127,8 +1124,8 @@
 		entry->priv = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_entry_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_entry_parent_class)->dispose) (object);
 }
 
 static void
@@ -1136,8 +1133,8 @@
 {
 	EEntry *entry;
 
-	if (GTK_WIDGET_CLASS (parent_class)->realize)
-		(* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
+	if (GTK_WIDGET_CLASS (e_entry_parent_class)->realize)
+		(* GTK_WIDGET_CLASS (e_entry_parent_class)->realize) (widget);
 
 	entry = E_ENTRY (widget);
 
@@ -1150,13 +1147,11 @@
 }
 
 static void
-e_entry_class_init (GObjectClass *object_class)
+e_entry_class_init (EEntryClass *klass)
 {
-	EEntryClass *klass = E_ENTRY_CLASS(object_class);
-	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(object_class);
+	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->set_property = et_set_property;
 	object_class->get_property = et_get_property;
 	object_class->dispose = e_entry_dispose;
@@ -1343,4 +1338,4 @@
 							       G_PARAM_READWRITE));
 }
 
-E_MAKE_TYPE(e_entry, "EEntry", EEntry, e_entry_class_init, e_entry_init, PARENT_TYPE)
+
Index: widgets/text/e-table-text-model.c
===================================================================
--- widgets/text/e-table-text-model.c	(revision 33820)
+++ widgets/text/e-table-text-model.c	(working copy)
@@ -41,27 +41,8 @@
 static void e_table_text_model_insert_length (ETextModel *model, gint postion, const gchar *text, gint length);
 static void e_table_text_model_delete (ETextModel *model, gint postion, gint length);
 
-#define PARENT_TYPE E_TYPE_TEXT_MODEL
-static GtkObject *parent_class;
+G_DEFINE_TYPE (ETableTextModel, e_table_text_model, E_TYPE_TEXT_MODEL)
 
-
-
-/**
- * e_table_text_model_get_type:
- * @void: 
- * 
- * Registers the &ETableTextModel class if necessary, and returns the type ID
- * associated to it.
- * 
- * Return value: The type ID of the &ETableTextModel class.
- **/
-E_MAKE_TYPE (e_table_text_model,
-	     "ETableTextModel",
-	     ETableTextModel,
-	     e_table_text_model_class_init,
-	     e_table_text_model_init,
-	     PARENT_TYPE)
-	     
 /* Class initialization function for the text item */
 static void
 e_table_text_model_class_init (ETableTextModelClass *klass)
@@ -72,8 +53,6 @@
 	object_class = (GObjectClass *) klass;
 	model_class = (ETextModelClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	model_class->get_text = e_table_text_model_get_text;
 	model_class->set_text = e_table_text_model_set_text;
 	model_class->insert = e_table_text_model_insert;
@@ -122,8 +101,8 @@
 		g_object_unref (model->model);
 	model->model = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_table_text_model_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_table_text_model_parent_class)->dispose) (object);
 }
 static const gchar *
 e_table_text_model_get_text (ETextModel *text_model)
Index: widgets/text/e-completion.c
===================================================================
--- widgets/text/e-completion.c	(revision 33820)
+++ widgets/text/e-completion.c	(working copy)
@@ -64,25 +64,13 @@
 static gboolean e_completion_sort               (ECompletion *complete);
 #endif
 
-#define PARENT_TYPE GTK_TYPE_OBJECT
-static GtkObjectClass *parent_class;
+G_DEFINE_TYPE (ECompletion, e_completion, GTK_TYPE_OBJECT)
 
-
-
-E_MAKE_TYPE (e_completion,
-	     "ECompletion",
-	     ECompletion,
-	     e_completion_class_init,
-	     e_completion_init,
-	     PARENT_TYPE)
-
 static void
 e_completion_class_init (ECompletionClass *klass)
 {
 	GObjectClass *object_class = (GObjectClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	e_completion_signals[COMPLETION_STARTED] =
 		g_signal_new ("completion_started",
 			      G_OBJECT_CLASS_TYPE (object_class),
@@ -140,8 +128,8 @@
 		complete->priv = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_completion_parent_class)->dispose)
+		(G_OBJECT_CLASS (e_completion_parent_class)->dispose) (object);
 }
 
 static void
