Index: widgets/text/e-text-model-uri.c
===================================================================
--- widgets/text/e-text-model-uri.c	(リビジョン 33820)
+++ widgets/text/e-text-model-uri.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-completion-view.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-text-model.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-text.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-completion-callbacks.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-entry.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-table-text-model.c	(作業コピー)
@@ -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	(リビジョン 33820)
+++ widgets/text/e-completion.c	(作業コピー)
@@ -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
Index: widgets/menus/gal-view-new-dialog.c
===================================================================
--- widgets/menus/gal-view-new-dialog.c	(リビジョン 33820)
+++ widgets/menus/gal-view-new-dialog.c	(作業コピー)
@@ -40,9 +40,6 @@
 static void gal_view_new_dialog_get_property	(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void gal_view_new_dialog_dispose		(GObject *object);
 
-static GtkDialogClass *parent_class = NULL;
-#define PARENT_TYPE GTK_TYPE_DIALOG
-
 /* The arguments we take */
 enum {
 	PROP_0,
@@ -50,10 +47,7 @@
 	PROP_FACTORY
 };
 
-E_MAKE_TYPE(gal_view_new_dialog, "GalViewNewDialog",
-	    GalViewNewDialog,
-	    gal_view_new_dialog_class_init,
-	    gal_view_new_dialog_init, PARENT_TYPE)
+G_DEFINE_TYPE (GalViewNewDialog, gal_view_new_dialog, GTK_TYPE_DIALOG)
 
 static void
 gal_view_new_dialog_class_init (GalViewNewDialogClass *klass)
@@ -62,8 +56,6 @@
 
 	object_class = (GObjectClass*) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->set_property = gal_view_new_dialog_set_property;
 	object_class->get_property = gal_view_new_dialog_get_property;
 	object_class->dispose      = gal_view_new_dialog_dispose;
@@ -127,8 +119,8 @@
 		g_object_unref(gal_view_new_dialog->gui);
 	gal_view_new_dialog->gui = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (gal_view_new_dialog_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_view_new_dialog_parent_class)->dispose) (object);
 }
 
 GtkWidget*
Index: widgets/menus/gal-view-collection.c
===================================================================
--- widgets/menus/gal-view-collection.c	(リビジョン 33820)
+++ widgets/menus/gal-view-collection.c	(作業コピー)
@@ -39,10 +39,8 @@
 
 #include "gal-view-collection.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (GalViewCollection, gal_view_collection, G_TYPE_OBJECT)
 
-static GObjectClass *gal_view_collection_parent_class;
-
 #define d(x)
 
 enum {
@@ -191,16 +189,15 @@
 	g_free (collection->title);
 	collection->title = NULL;
 
-	if (gal_view_collection_parent_class->dispose)
-		(*gal_view_collection_parent_class->dispose)(object);
+	if (G_OBJECT_CLASS (gal_view_collection_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_view_collection_parent_class)->dispose)(object);
 }
 
 static void
-gal_view_collection_class_init (GObjectClass *object_class)
+gal_view_collection_class_init (GalViewCollectionClass *klass)
 {
-	GalViewCollectionClass *klass = GAL_VIEW_COLLECTION_CLASS(object_class);
-	gal_view_collection_parent_class = g_type_class_ref (PARENT_TYPE);
-	
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
 	object_class->dispose = gal_view_collection_dispose;
 
 	gal_view_collection_signals [DISPLAY_VIEW] =
@@ -245,8 +242,6 @@
 	collection->title                 = NULL;
 }
 
-E_MAKE_TYPE(gal_view_collection, "GalViewCollection", GalViewCollection, gal_view_collection_class_init, gal_view_collection_init, PARENT_TYPE)
-
 /**
  * gal_view_collection_new:
  *
Index: widgets/menus/gal-view-etable.c
===================================================================
--- widgets/menus/gal-view-etable.c	(リビジョン 33820)
+++ widgets/menus/gal-view-etable.c	(作業コピー)
@@ -27,10 +27,8 @@
 
 #include "gal-view-etable.h"
 
-#define PARENT_TYPE GAL_VIEW_TYPE
+G_DEFINE_TYPE (GalViewEtable, gal_view_etable, GAL_VIEW_TYPE)
 
-static GalViewClass *gal_view_etable_parent_class;
-
 static void
 detach_table (GalViewEtable *view)
 {
@@ -163,10 +161,10 @@
 }
 
 static void
-gal_view_etable_class_init      (GObjectClass *object_class)
+gal_view_etable_class_init      (GalViewEtableClass *klass)
 {
-	GalViewClass *gal_view_class  = GAL_VIEW_CLASS(object_class);
-	gal_view_etable_parent_class  = g_type_class_ref (PARENT_TYPE);
+	GalViewClass *gal_view_class  = GAL_VIEW_CLASS (klass);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
 	gal_view_class->edit          = gal_view_etable_edit         ;
 	gal_view_class->load          = gal_view_etable_load         ;
@@ -187,8 +185,6 @@
 	gve->title = NULL;
 }
 
-E_MAKE_TYPE(gal_view_etable, "GalViewEtable", GalViewEtable, gal_view_etable_class_init, gal_view_etable_init, PARENT_TYPE)
-
 /**
  * gal_view_etable_new
  * @spec: The ETableSpecification that this view will be based upon.
Index: widgets/menus/gal-view-instance-save-as-dialog.c
===================================================================
--- widgets/menus/gal-view-instance-save-as-dialog.c	(リビジョン 33820)
+++ widgets/menus/gal-view-instance-save-as-dialog.c	(作業コピー)
@@ -33,8 +33,7 @@
 #include "gal-view-instance-save-as-dialog.h"
 #include "gal-view-new-dialog.h"
 
-static GtkDialogClass *parent_class = NULL;
-#define PARENT_TYPE GTK_TYPE_DIALOG
+G_DEFINE_TYPE (GalViewInstanceSaveAsDialog, gal_view_instance_save_as_dialog, GTK_TYPE_DIALOG)
 
 /* The arguments we take */
 enum {
@@ -159,8 +158,8 @@
 		g_object_unref(gal_view_instance_save_as_dialog->gui);
 	gal_view_instance_save_as_dialog->gui = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (gal_view_instance_save_as_dialog_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_view_instance_save_as_dialog_parent_class)->dispose) (object);
 }
 
 /* Init functions */
@@ -171,8 +170,6 @@
 
 	object_class = (GObjectClass*) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->set_property = gal_view_instance_save_as_dialog_set_property;
 	object_class->get_property = gal_view_instance_save_as_dialog_get_property;
 	object_class->dispose      = gal_view_instance_save_as_dialog_dispose;
@@ -270,11 +267,6 @@
 	return widget;
 }
 
-E_MAKE_TYPE(gal_view_instance_save_as_dialog, "GalViewInstanceSaveAsDialog",
-	    GalViewInstanceSaveAsDialog,
-	    gal_view_instance_save_as_dialog_class_init,
-	    gal_view_instance_save_as_dialog_init, PARENT_TYPE)
-
 void
 gal_view_instance_save_as_dialog_save (GalViewInstanceSaveAsDialog *dialog)
 {
Index: widgets/menus/gal-view-factory-etable.c
===================================================================
--- widgets/menus/gal-view-factory-etable.c	(リビジョン 33820)
+++ widgets/menus/gal-view-factory-etable.c	(作業コピー)
@@ -29,10 +29,8 @@
 #include "gal-view-etable.h"
 #include "gal-view-factory-etable.h"
 
-#define PARENT_TYPE GAL_VIEW_FACTORY_TYPE
+G_DEFINE_TYPE (GalViewFactoryEtable, gal_view_factory_etable, GAL_VIEW_FACTORY_TYPE)
 
-static GalViewFactoryClass *gal_view_factory_etable_parent_class;
-
 static const char *
 gal_view_factory_etable_get_title       (GalViewFactory *factory)
 {
@@ -66,10 +64,10 @@
 }
 
 static void
-gal_view_factory_etable_class_init      (GObjectClass *object_class)
+gal_view_factory_etable_class_init      (GalViewFactoryEtableClass *klass)
 {
-	GalViewFactoryClass *view_factory_class = GAL_VIEW_FACTORY_CLASS(object_class);
-	gal_view_factory_etable_parent_class    = g_type_class_ref (PARENT_TYPE);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	GalViewFactoryClass *view_factory_class = GAL_VIEW_FACTORY_CLASS (klass);
 
 	view_factory_class->get_title           = gal_view_factory_etable_get_title;
 	view_factory_class->new_view            = gal_view_factory_etable_new_view;
@@ -119,4 +117,3 @@
 	return GAL_VIEW_FACTORY(factory);
 }
 
-E_MAKE_TYPE(gal_view_factory_etable, "GalViewFactoryEtable", GalViewFactoryEtable, gal_view_factory_etable_class_init, gal_view_factory_etable_init, PARENT_TYPE)
Index: widgets/menus/gal-view.c
===================================================================
--- widgets/menus/gal-view.c	(リビジョン 33820)
+++ widgets/menus/gal-view.c	(作業コピー)
@@ -27,15 +27,13 @@
 
 #include "gal-view.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (GalView, gal_view, G_TYPE_OBJECT)
 
 #define d(x)
 
 d(static gint depth = 0;)
 
 
-static GObjectClass *gal_view_parent_class;
-
 enum {
 	CHANGED,
 	LAST_SIGNAL
@@ -177,11 +175,10 @@
 }
 
 static void
-gal_view_class_init      (GObjectClass *object_class)
+gal_view_class_init      (GalViewClass *klass)
 {
-	GalViewClass *klass   = GAL_VIEW_CLASS(object_class);
-	gal_view_parent_class = g_type_class_ref (PARENT_TYPE);
-	
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
 	klass->edit           = NULL;     
 	klass->load           = NULL;     
 	klass->save           = NULL;     
@@ -205,4 +202,3 @@
 {
 }
 
-E_MAKE_TYPE(gal_view, "GalView", GalView, gal_view_class_init, gal_view_init, PARENT_TYPE)
Index: widgets/menus/gal-view-instance.c
===================================================================
--- widgets/menus/gal-view-instance.c	(リビジョン 33820)
+++ widgets/menus/gal-view-instance.c	(作業コピー)
@@ -45,10 +45,8 @@
 #include "gal-view-instance.h"
 #include "gal-view-instance-save-as-dialog.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (GalViewInstance, gal_view_instance, G_TYPE_OBJECT)
 
-static GObjectClass *gal_view_instance_parent_class;
-
 static const EPopupMenu separator = E_POPUP_SEPARATOR;
 static const EPopupMenu terminator = E_POPUP_TERMINATOR;
 
@@ -174,16 +172,15 @@
 
 	g_free (instance->default_view);
 
-	if (gal_view_instance_parent_class->dispose)
-		(*gal_view_instance_parent_class->dispose)(object);
+	if (G_OBJECT_CLASS (gal_view_instance_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_view_instance_parent_class)->dispose)(object);
 }
 
 static void
-gal_view_instance_class_init (GObjectClass *object_class)
+gal_view_instance_class_init (GalViewInstanceClass *klass)
 {
-	GalViewInstanceClass *klass = GAL_VIEW_INSTANCE_CLASS(object_class);
-	gal_view_instance_parent_class = g_type_class_ref (PARENT_TYPE);
-	
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
 	object_class->dispose = gal_view_instance_dispose;
 
 	gal_view_instance_signals [DISPLAY_VIEW] =
@@ -229,8 +226,6 @@
 	instance->default_view = NULL;
 }
 
-E_MAKE_TYPE(gal_view_instance, "GalViewInstance", GalViewInstance, gal_view_instance_class_init, gal_view_instance_init, PARENT_TYPE)
-
 static void
 collection_changed (GalView *view, GalViewInstance *instance)
 {
Index: widgets/menus/gal-view-factory.c
===================================================================
--- widgets/menus/gal-view-factory.c	(リビジョン 33820)
+++ widgets/menus/gal-view-factory.c	(作業コピー)
@@ -27,14 +27,12 @@
 
 #include "gal-view-factory.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (GalViewFactory, gal_view_factory, G_TYPE_OBJECT)
 
 #define d(x)
 
 d(static gint depth = 0;)
 
-static GObjectClass *gal_view_factory_parent_class;
-
 /**
  * gal_view_factory_get_title:
  * @factory: The factory to query.
@@ -92,11 +90,8 @@
 }
 
 static void
-gal_view_factory_class_init      (GObjectClass *object_class)
+gal_view_factory_class_init      (GalViewFactoryClass *klass)
 {
-	GalViewFactoryClass *klass = GAL_VIEW_FACTORY_CLASS(object_class);
-	gal_view_factory_parent_class = g_type_class_ref (PARENT_TYPE);
-	
 	klass->get_title = NULL;     
 	klass->new_view  = NULL;     
 }
@@ -106,4 +101,3 @@
 {
 }
 
-E_MAKE_TYPE(gal_view_factory, "GalViewFactory", GalViewFactory, gal_view_factory_class_init, gal_view_factory_init, PARENT_TYPE)
Index: widgets/menus/gal-define-views-dialog.c
===================================================================
--- widgets/menus/gal-define-views-dialog.c	(リビジョン 33820)
+++ widgets/menus/gal-define-views-dialog.c	(作業コピー)
@@ -40,9 +40,6 @@
 static void gal_define_views_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void gal_define_views_dialog_dispose	 (GObject *object);
 
-static GtkDialogClass *parent_class = NULL;
-#define PARENT_TYPE GTK_TYPE_DIALOG
-
 /* The properties we support */
 enum {
 	PROP_0,
@@ -63,9 +60,8 @@
 	GalDefineViewsDialog *names;
 } GalDefineViewsDialogChild;
 
+G_DEFINE_TYPE (GalDefineViewsDialog, gal_define_views_dialog, GTK_TYPE_DIALOG)
 
-E_MAKE_TYPE(gal_define_views_dialog, "GalDefineViewsDialog", GalDefineViewsDialog, gal_define_views_dialog_class_init, gal_define_views_dialog_init, PARENT_TYPE)
-
 static void
 gal_define_views_dialog_class_init (GalDefineViewsDialogClass *klass)
 {
@@ -73,8 +69,6 @@
 
 	object_class = (GObjectClass*) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->set_property = gal_define_views_dialog_set_property;
 	object_class->get_property = gal_define_views_dialog_get_property;
 	object_class->dispose = gal_define_views_dialog_dispose;
@@ -305,8 +299,8 @@
 		g_object_unref(gal_define_views_dialog->gui);
 	gal_define_views_dialog->gui = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (gal_define_views_dialog_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_define_views_dialog_parent_class)->dispose) (object);
 }
 
 static void
Index: widgets/menus/gal-define-views-model.c
===================================================================
--- widgets/menus/gal-define-views-model.c	(リビジョン 33820)
+++ widgets/menus/gal-define-views-model.c	(作業コピー)
@@ -32,8 +32,7 @@
 
 #include "gal-define-views-model.h"
 
-#define PARENT_TYPE E_TABLE_MODEL_TYPE
-static ETableModelClass *parent_class;
+G_DEFINE_TYPE (GalDefineViewsModel, gal_define_views_model, E_TABLE_MODEL_TYPE)
 
 /*
  * GalDefineViewsModel callbacks
@@ -57,8 +56,8 @@
 		g_object_unref(model->collection);
 	model->collection = NULL;
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (gal_define_views_model_parent_class)->dispose)
+		(* G_OBJECT_CLASS (gal_define_views_model_parent_class)->dispose) (object);
 }
 
 /* This function returns the number of columns in our ETableModel. */
@@ -166,12 +165,11 @@
 }
 
 static void
-gal_define_views_model_class_init (GObjectClass *object_class)
+gal_define_views_model_class_init (GalDefineViewsModelClass *klass)
 {
-	ETableModelClass *model_class = (ETableModelClass *) object_class;
+	ETableModelClass *model_class = E_TABLE_MODEL_CLASS (klass);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->dispose        = gdvm_dispose;
 	object_class->set_property   = gal_define_views_model_set_property;
 	object_class->get_property   = gal_define_views_model_get_property;
@@ -204,10 +202,8 @@
 }
 
 static void
-gal_define_views_model_init (GObject *object)
+gal_define_views_model_init (GalDefineViewsModel *model)
 {
-	GalDefineViewsModel *model = GAL_DEFINE_VIEWS_MODEL(object);
-
 	model->collection = NULL;
 }
 
@@ -255,8 +251,6 @@
 	}
 }
 
-E_MAKE_TYPE(gal_define_views_model, "GalDefineViewsModel", GalDefineViewsModel, gal_define_views_model_class_init, gal_define_views_model_init, PARENT_TYPE)
-
 /**
  * gal_define_views_model_new
  *
Index: widgets/ChangeLog
===================================================================
--- widgets/ChangeLog	(リビジョン 33820)
+++ widgets/ChangeLog	(作業コピー)
@@ -1,5 +1,36 @@
 2007-07-19  Hiroyuki Ikezoe  <poincare@ikezoe.net>
 
+	* text/e-text-model-uri.c,
+	  text/e-completion-view.c,
+	  text/e-text-model.c,
+	  text/e-text.c,
+	  text/e-completion-callbacks.c,
+	  text/e-entry.c,
+	  text/e-table-text-model.c,
+	  text/e-completion.c,
+	  menus/gal-view-new-dialog.c,
+	  menus/gal-view-collection.c,
+	  menus/gal-view-etable.c,
+	  menus/gal-view-instance-save-as-dialog.c,
+	  menus/gal-view-factory-etable.c,
+	  menus/gal-view.c,
+	  menus/gal-view-instance.c,
+	  menus/gal-view-factory.c,
+	  menus/gal-define-views-dialog.c,
+	  menus/gal-define-views-model.c,
+	  misc/e-canvas-vbox.c,
+	  misc/e-reflow-model.c,
+	  misc/e-selection-model-array.c,
+	  misc/e-reflow.c,
+	  misc/e-canvas.c,
+	  misc/e-selection-model.c,
+	  misc/e-printable.c,
+	  misc/e-canvas-background.c,
+	  misc/e-selection-model-simple.c: Use G_DEFINE_TYPE instead of
+	  E_MAKE_TYPE.
+
+2007-07-19  Hiroyuki Ikezoe  <poincare@ikezoe.net>
+
 	* text/e-text.c: (e_text_copy_clipboard): Remove needless g_strndup().
 
 2007-07-15  Hiroyuki Ikezoe  <poincare@ikezoe.net>
Index: widgets/misc/e-canvas-vbox.c
===================================================================
--- widgets/misc/e-canvas-vbox.c	(リビジョン 33820)
+++ widgets/misc/e-canvas-vbox.c	(作業コピー)
@@ -50,9 +50,6 @@
 static void e_canvas_vbox_real_add_item_start(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item);
 static void e_canvas_vbox_resize_children (GnomeCanvasItem *item);
 
-#define PARENT_TYPE GNOME_TYPE_CANVAS_GROUP
-static GnomeCanvasGroupClass *parent_class = NULL;
-
 /* The arguments we take */
 enum {
 	PROP_0,
@@ -62,12 +59,7 @@
 	PROP_SPACING
 };
 
-E_MAKE_TYPE (e_canvas_vbox,
-	     "ECanvasVbox",
-	     ECanvasVbox,
-	     e_canvas_vbox_class_init,
-	     e_canvas_vbox_init,
-	     PARENT_TYPE)
+G_DEFINE_TYPE (ECanvasVbox, e_canvas_vbox, GNOME_TYPE_CANVAS_GROUP)
 
 static void
 e_canvas_vbox_class_init (ECanvasVboxClass *klass)
@@ -78,8 +70,6 @@
 	object_class = (GObjectClass*) klass;
 	item_class = (GnomeCanvasItemClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	klass->add_item       = e_canvas_vbox_real_add_item;
 	klass->add_item_start = e_canvas_vbox_real_add_item_start;
  
@@ -206,7 +196,7 @@
 		vbox->items = NULL;
 	}
 
-	G_OBJECT_CLASS(parent_class)->dispose (object);
+	G_OBJECT_CLASS(e_canvas_vbox_parent_class)->dispose (object);
 }
 
 static gint
@@ -239,8 +229,8 @@
 		break;
 	}
 	if (!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_canvas_vbox_parent_class)->event)
+			return GNOME_CANVAS_ITEM_CLASS (e_canvas_vbox_parent_class)->event (item, event);
 	}
 	return return_val;
 	
@@ -249,8 +239,8 @@
 static void
 e_canvas_vbox_realize (GnomeCanvasItem *item)
 {
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->realize)
-		(* GNOME_CANVAS_ITEM_CLASS(parent_class)->realize) (item);
+	if (GNOME_CANVAS_ITEM_CLASS(e_canvas_vbox_parent_class)->realize)
+		(* GNOME_CANVAS_ITEM_CLASS(e_canvas_vbox_parent_class)->realize) (item);
 	
 	e_canvas_vbox_resize_children(item);
 	e_canvas_item_request_reflow(item);
Index: widgets/misc/e-reflow-model.c
===================================================================
--- widgets/misc/e-reflow-model.c	(リビジョン 33820)
+++ widgets/misc/e-reflow-model.c	(作業コピー)
@@ -29,15 +29,13 @@
 
 #include "e-reflow-model.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (EReflowModel, e_reflow_model, G_TYPE_OBJECT)
 
 #define d(x)
 
 d(static gint depth = 0;)
 
 
-static GObjectClass *e_reflow_model_parent_class;
-
 enum {
 	MODEL_CHANGED,
 	COMPARISON_CHANGED,
@@ -153,10 +151,9 @@
 }
 
 static void
-e_reflow_model_class_init (GObjectClass *object_class)
+e_reflow_model_class_init (EReflowModelClass *klass)
 {
-	EReflowModelClass *klass = E_REFLOW_MODEL_CLASS(object_class);
-	e_reflow_model_parent_class = g_type_class_ref (PARENT_TYPE);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
 	e_reflow_model_signals [MODEL_CHANGED] =
 		g_signal_new ("model_changed",
@@ -217,13 +214,10 @@
 }
 
 static void
-e_reflow_model_init (GObject *object)
+e_reflow_model_init (EReflowModel *e_reflow_model)
 {
 }
 
-E_MAKE_TYPE(e_reflow_model, "EReflowModel", EReflowModel,
-	    e_reflow_model_class_init, e_reflow_model_init, PARENT_TYPE)
-
 #if d(!)0
 static void
 print_tabs (void)
Index: widgets/misc/e-selection-model-array.c
===================================================================
--- widgets/misc/e-selection-model-array.c	(リビジョン 33820)
+++ widgets/misc/e-selection-model-array.c	(作業コピー)
@@ -30,10 +30,8 @@
 
 #include "e-selection-model-array.h"
 
-#define PARENT_TYPE e_selection_model_get_type ()
+G_DEFINE_TYPE (ESelectionModelArray, e_selection_model_array, e_selection_model_get_type())
 
-static ESelectionModelClass *parent_class;
-
 enum {
 	PROP_0,
 	PROP_CURSOR_ROW,
@@ -142,8 +140,8 @@
 		esma->eba = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-		(* G_OBJECT_CLASS (parent_class)->dispose) (object);
+	if (G_OBJECT_CLASS (e_selection_model_array_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_selection_model_array_parent_class)->dispose) (object);
 }
 
 static void
@@ -513,8 +511,6 @@
 	GObjectClass *object_class;
 	ESelectionModelClass *esm_class;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class = G_OBJECT_CLASS(klass);
 	esm_class = E_SELECTION_MODEL_CLASS(klass);
 
@@ -557,5 +553,3 @@
 							   G_PARAM_READWRITE));
 }
 
-E_MAKE_TYPE(e_selection_model_array, "ESelectionModelArray", ESelectionModelArray,
-	    e_selection_model_array_class_init, e_selection_model_array_init, PARENT_TYPE)
Index: widgets/misc/e-reflow.c
===================================================================
--- widgets/misc/e-reflow.c	(リビジョン 33820)
+++ widgets/misc/e-reflow.c	(作業コピー)
@@ -56,8 +56,7 @@
 #define E_REFLOW_BORDER_WIDTH 7
 #define E_REFLOW_FULL_GUTTER (E_REFLOW_DIVIDER_WIDTH + E_REFLOW_BORDER_WIDTH * 2)
 
-#define PARENT_TYPE GNOME_TYPE_CANVAS_GROUP
-static GnomeCanvasGroupClass *parent_class = NULL;
+G_DEFINE_TYPE (EReflow, e_reflow, GNOME_TYPE_CANVAS_GROUP)
 
 /* The arguments we take */
 enum {
@@ -825,7 +824,7 @@
 		reflow->sorter = NULL;
 	}
 
-	G_OBJECT_CLASS(parent_class)->dispose (object);
+	G_OBJECT_CLASS(e_reflow_parent_class)->dispose (object);
 }
 
 static void
@@ -838,8 +837,8 @@
 
 	reflow = E_REFLOW (item);
 
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->realize)
-		(* GNOME_CANVAS_ITEM_CLASS(parent_class)->realize) (item);
+	if (GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->realize)
+		(* GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->realize) (item);
 	
 	reflow->arrow_cursor = gdk_cursor_new (GDK_SB_H_DOUBLE_ARROW);
 	reflow->default_cursor = gdk_cursor_new (GDK_LEFT_PTR);
@@ -893,8 +892,8 @@
 	disconnect_set_adjustment (reflow);
 	disconnect_adjustment (reflow);
 
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->unrealize)
-		(* GNOME_CANVAS_ITEM_CLASS(parent_class)->unrealize) (item);
+	if (GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->unrealize)
+		(* GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->unrealize) (item);
 }
 
 static gboolean
@@ -1108,8 +1107,8 @@
 		}
 	if (return_val)
 		return return_val;
-	else if (GNOME_CANVAS_ITEM_CLASS( parent_class )->event)
-		return (* GNOME_CANVAS_ITEM_CLASS( parent_class )->event) (item, event);
+	else if (GNOME_CANVAS_ITEM_CLASS( e_reflow_parent_class )->event)
+		return (* GNOME_CANVAS_ITEM_CLASS( e_reflow_parent_class )->event) (item, event);
 	else
 		return FALSE;
 }
@@ -1123,8 +1122,8 @@
 	int i;
 	double column_width;
 
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->draw)
-		GNOME_CANVAS_ITEM_CLASS(parent_class)->draw (item, drawable, x, y, width, height);
+	if (GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->draw)
+		GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->draw (item, drawable, x, y, width, height);
 	column_width = reflow->column_width;
 	running_width = E_REFLOW_BORDER_WIDTH + column_width + E_REFLOW_BORDER_WIDTH;
 	x_rect = running_width;
@@ -1196,8 +1195,8 @@
 
 	reflow = E_REFLOW (item);
 
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->update)
-		GNOME_CANVAS_ITEM_CLASS(parent_class)->update (item, affine, clip_path, flags);
+	if (GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->update)
+		GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->update (item, affine, clip_path, flags);
 	
 	x0 = item->x1;
 	y0 = item->y1;
@@ -1280,8 +1279,8 @@
 
 	*actual_item = NULL;
 
-	if (GNOME_CANVAS_ITEM_CLASS(parent_class)->point)
-		distance = GNOME_CANVAS_ITEM_CLASS(parent_class)->point (item, x, y, cx, cy, actual_item);
+	if (GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->point)
+		distance = GNOME_CANVAS_ITEM_CLASS(e_reflow_parent_class)->point (item, x, y, cx, cy, actual_item);
 	if ((int) (distance * item->canvas->pixels_per_unit + 0.5) <= item->canvas->close_enough && *actual_item)
 		return distance;
 	
@@ -1407,8 +1406,6 @@
 	object_class = (GObjectClass*) klass;
 	item_class = (GnomeCanvasItemClass *) klass;
 
-	parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class->set_property  = e_reflow_set_property;
 	object_class->get_property  = e_reflow_get_property;
 	object_class->dispose  = e_reflow_dispose;
@@ -1546,9 +1543,3 @@
 	e_canvas_item_set_reflow_callback(GNOME_CANVAS_ITEM(reflow), e_reflow_reflow);
 }
 
-E_MAKE_TYPE (e_reflow,
-	     "EReflow",
-	     EReflow,
-	     e_reflow_class_init,
-	     e_reflow_init,
-	     PARENT_TYPE)
Index: widgets/misc/e-canvas.c
===================================================================
--- widgets/misc/e-canvas.c	(リビジョン 33820)
+++ widgets/misc/e-canvas.c	(作業コピー)
@@ -53,9 +53,6 @@
 
 static int emit_event (GnomeCanvas *canvas, GdkEvent *event);
 
-#define PARENT_TYPE GNOME_TYPE_CANVAS
-static GnomeCanvasClass *parent_class = NULL;
-
 #define d(x)
 
 enum {
@@ -65,12 +62,7 @@
 
 static guint e_canvas_signals [LAST_SIGNAL] = { 0, };
 
-E_MAKE_TYPE (e_canvas,
-	     "ECanvas",
-	     ECanvas,
-	     e_canvas_class_init,
-	     e_canvas_init,
-	     PARENT_TYPE)
+G_DEFINE_TYPE (ECanvas, e_canvas, GNOME_TYPE_CANVAS)
 
 static void
 e_canvas_class_init (ECanvasClass *klass)
@@ -81,8 +73,6 @@
 	object_class                       = (GObjectClass*) klass;
 	widget_class                       = (GtkWidgetClass *) klass;
 
-	parent_class                       = g_type_class_ref (PARENT_TYPE);
-
 	object_class->dispose              = e_canvas_dispose;
 
 	widget_class->key_press_event      = e_canvas_key;
@@ -146,8 +136,8 @@
 
 	e_canvas_hide_tooltip(canvas);
 
-	if ((G_OBJECT_CLASS (parent_class))->dispose)
-		(*(G_OBJECT_CLASS (parent_class))->dispose) (object);
+	if ((G_OBJECT_CLASS (e_canvas_parent_class))->dispose)
+		(*(G_OBJECT_CLASS (e_canvas_parent_class))->dispose) (object);
 }
 
 GtkWidget *
@@ -683,8 +673,8 @@
 {
 	ECanvas *ecanvas = E_CANVAS (widget);
 
-	if (GTK_WIDGET_CLASS (parent_class)->realize)
-		(* GTK_WIDGET_CLASS (parent_class)->realize) (widget);
+	if (GTK_WIDGET_CLASS (e_canvas_parent_class)->realize)
+		(* GTK_WIDGET_CLASS (e_canvas_parent_class)->realize) (widget);
 
 	gdk_window_set_back_pixmap (GTK_LAYOUT (widget)->bin_window, NULL, FALSE);
 
@@ -703,8 +693,8 @@
 
 	gtk_im_context_set_client_window (ecanvas->im_context, NULL);
 
-	if (GTK_WIDGET_CLASS (parent_class)->unrealize)
-		(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+	if (GTK_WIDGET_CLASS (e_canvas_parent_class)->unrealize)
+		(* GTK_WIDGET_CLASS (e_canvas_parent_class)->unrealize) (widget);
 }
 
 static void
Index: widgets/misc/e-selection-model.c
===================================================================
--- widgets/misc/e-selection-model.c	(リビジョン 33820)
+++ widgets/misc/e-selection-model.c	(作業コピー)
@@ -31,10 +31,8 @@
 
 #include "e-selection-model.h"
 
-#define PARENT_TYPE G_TYPE_OBJECT
+G_DEFINE_TYPE (ESelectionModel, e_selection_model, G_TYPE_OBJECT)
 
-static GObjectClass *e_selection_model_parent_class;
-
 enum {
 	CURSOR_CHANGED,
 	CURSOR_ACTIVATED,
@@ -79,8 +77,8 @@
 
 	drop_sorter(esm);
 
-	if (e_selection_model_parent_class->dispose)
-		(* e_selection_model_parent_class->dispose) (object);
+	if (G_OBJECT_CLASS (e_selection_model_parent_class)->dispose)
+		(* G_OBJECT_CLASS (e_selection_model_parent_class)->dispose) (object);
 }
 
 static void
@@ -142,8 +140,6 @@
 {
 	GObjectClass *object_class;
 
-	e_selection_model_parent_class = g_type_class_ref (PARENT_TYPE);
-
 	object_class = G_OBJECT_CLASS(klass);
 
 	object_class->dispose = esm_dispose;
@@ -233,9 +229,6 @@
 							   G_PARAM_READWRITE));
 }
 
-E_MAKE_TYPE(e_selection_model, "ESelectionModel", ESelectionModel,
-	    e_selection_model_class_init, e_selection_model_init, PARENT_TYPE)
-
 /** 
  * e_selection_model_is_row_selected
  * @selection: #ESelectionModel to check
Index: widgets/misc/e-printable.c
===================================================================
--- widgets/misc/e-printable.c	(リビジョン 33820)
+++ widgets/misc/e-printable.c	(作業コピー)
@@ -34,11 +34,8 @@
 
 #define EP_CLASS(e) ((EPrintableClass *)((GtkObject *)e)->klass)
 
-#define PARENT_TYPE GTK_TYPE_OBJECT
-					  
+G_DEFINE_TYPE (EPrintable, e_printable, GTK_TYPE_OBJECT)
 
-static GtkObjectClass *e_printable_parent_class;
-
 enum {
 	PRINT_PAGE,
 	DATA_LEFT,
@@ -51,10 +48,9 @@
 static guint e_printable_signals [LAST_SIGNAL] = { 0, };
 
 static void
-e_printable_class_init (GtkObjectClass *object_class)
+e_printable_class_init (EPrintableClass *klass)
 {
-	EPrintableClass *klass = E_PRINTABLE_CLASS(object_class);
-	e_printable_parent_class = g_type_class_ref (PARENT_TYPE);
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 	
 	e_printable_signals [PRINT_PAGE] =
 		g_signal_new ("print_page",
@@ -111,14 +107,12 @@
 	klass->will_fit = NULL;
 }
 
+static void
+e_printable_init (EPrintable *e_printable)
+{
+	/* nothing to do */
+}
 
-E_MAKE_TYPE (e_printable,
-	     "EPrintable",
-	     EPrintable,
-	     e_printable_class_init,
-	     NULL,
-	     PARENT_TYPE)
-
 EPrintable *
 e_printable_new(void)
 {
Index: widgets/misc/e-canvas-background.c
===================================================================
--- widgets/misc/e-canvas-background.c	(リビジョン 33820)
+++ widgets/misc/e-canvas-background.c	(作業コピー)
@@ -38,7 +38,9 @@
 
 #include "e-canvas-background.h"
 
-#define PARENT_OBJECT_TYPE gnome_canvas_item_get_type ()
+/* workaround for avoiding API broken */
+#define ecb_get_type e_canvas_background_get_type
+G_DEFINE_TYPE (ECanvasBackground, ecb, GNOME_TYPE_CANVAS_ITEM)
 
 #define d(x)
 
@@ -55,8 +57,6 @@
 	guint needs_redraw : 1;
 };
 
-static GnomeCanvasItemClass *parent_class;
-
 enum {
 	STYLE_SET,
 	LAST_SIGNAL
@@ -131,8 +131,8 @@
 	ArtPoint o1, o2;
 	ECanvasBackground *ecb = E_CANVAS_BACKGROUND (item);
 
-	if (GNOME_CANVAS_ITEM_CLASS (parent_class)->update)
-		GNOME_CANVAS_ITEM_CLASS (parent_class)->update (item, affine, clip_path, flags);
+	if (GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->update)
+		GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->update (item, affine, clip_path, flags);
 
 	o1.x = item->x1;
 	o1.y = item->y1;
@@ -191,8 +191,8 @@
 		ecb->priv = NULL;
 	}
 
-	if (G_OBJECT_CLASS (parent_class)->dispose)
-                G_OBJECT_CLASS (parent_class)->dispose (object);
+	if (G_OBJECT_CLASS (ecb_parent_class)->dispose)
+                G_OBJECT_CLASS (ecb_parent_class)->dispose (object);
 }
 
 static void
@@ -316,10 +316,8 @@
 }
 
 static void
-ecb_init (GnomeCanvasItem *item)
+ecb_init (ECanvasBackground *ecb)
 {
-	ECanvasBackground *ecb = E_CANVAS_BACKGROUND (item);
-
 	ecb->priv               = g_new (ECanvasBackgroundPrivate, 1);
 
 	ecb->priv->color.pixel  = 0;
@@ -339,8 +337,8 @@
 {
 	ECanvasBackground *ecb = E_CANVAS_BACKGROUND (item);
 	
-	if (GNOME_CANVAS_ITEM_CLASS (parent_class)->realize)
-                GNOME_CANVAS_ITEM_CLASS (parent_class)->realize (item);
+	if (GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->realize)
+                GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->realize (item);
 
 	ecb->priv->gc = gdk_gc_new (item->canvas->layout.bin_window);
 	get_color (ecb);
@@ -361,8 +359,8 @@
 	g_object_unref (ecb->priv->gc);
 	ecb->priv->gc = NULL;
 
-	if (GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize)
-                GNOME_CANVAS_ITEM_CLASS (parent_class)->unrealize (item);
+	if (GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->unrealize)
+                GNOME_CANVAS_ITEM_CLASS (ecb_parent_class)->unrealize (item);
 }
 
 static void
@@ -433,13 +431,11 @@
 }
 
 static void
-ecb_class_init (GObjectClass *object_class)
+ecb_class_init (ECanvasBackgroundClass *ecb_class)
 {
-	GnomeCanvasItemClass *item_class = (GnomeCanvasItemClass *) object_class;
-	ECanvasBackgroundClass *ecb_class = (ECanvasBackgroundClass *) object_class;
+	GnomeCanvasItemClass *item_class = GNOME_CANVAS_ITEM_CLASS (ecb_class);
+	GObjectClass *object_class = G_OBJECT_CLASS (ecb_class);
 	
-	parent_class                = g_type_class_ref (PARENT_OBJECT_TYPE);
-	
 	object_class->dispose       = ecb_dispose;
 	object_class->set_property  = ecb_set_property;
 	object_class->get_property  = ecb_get_property;
@@ -517,9 +513,3 @@
 			      G_TYPE_NONE, 1, GTK_TYPE_STYLE);
 }
 
-E_MAKE_TYPE (e_canvas_background,
-	     "ECanvasBackground",
-	     ECanvasBackground,
-	     ecb_class_init,
-	     ecb_init,
-	     PARENT_OBJECT_TYPE)
Index: widgets/misc/e-selection-model-simple.c
===================================================================
--- widgets/misc/e-selection-model-simple.c	(リビジョン 33820)
+++ widgets/misc/e-selection-model-simple.c	(作業コピー)
@@ -28,10 +28,6 @@
 #include "e-selection-model-array.h"
 #include "e-selection-model-simple.h"
 
-#define PARENT_TYPE e_selection_model_array_get_type ()
-
-static ESelectionModelArray *parent_class;
-
 static gint esms_get_row_count (ESelectionModelArray *esma);
 
 static void
@@ -45,15 +41,12 @@
 {
 	ESelectionModelArrayClass *esma_class;
 
-	parent_class              = g_type_class_ref (PARENT_TYPE);
-
 	esma_class                = E_SELECTION_MODEL_ARRAY_CLASS(klass);
 
 	esma_class->get_row_count = esms_get_row_count;
 }
 
-E_MAKE_TYPE(e_selection_model_simple, "ESelectionModelSimple", ESelectionModelSimple,
-	    e_selection_model_simple_class_init, e_selection_model_simple_init, PARENT_TYPE)
+G_DEFINE_TYPE (ESelectionModelSimple, e_selection_model_simple, e_selection_model_array_get_type())
 
 /** 
  * e_selection_model_simple_new
