[conglomerate] Remove use of deprecated Gnome libraries



commit cbdced0758b34e2f92eb3bbd01d45e177d9e6168
Author: P. F. Chimento <philip chimento gmail com>
Date:   Wed Aug 10 22:02:06 2011 +0200

    Remove use of deprecated Gnome libraries
    
    See bug #656279.
    
    This patch removes the dependency on libgnome, libgnomeui, and
    libbonobo. Some specifics:
    - Removes GnomeOption/POPT parsing in favor of g_option_...
    - Removes use of GnomeProgram. Doesn't replace it with anything yet,
      since GApplication isn't supported well on all platforms.
    - gnome_program_locate_file() now looks in DATADIR/conglomerate
    - Removes use of GnomeDruid in favor of GtkAssistant
    - Removes use of various functions and macros in favor of their modern
      counterparts.
    
    The only thing not replaced is the use of GnomeEntry in
    cong-edit-find-and-replace.c. GnomeEntry saves previous text values
    across runs and adds them to a completion list. The proper way to do
    this without libgnomeui is to save the values in one's own configuration
    file, but that should be done when the application is ported to
    GSettings.

 configure.ac                                  |   20 +-
 conglomerate.spec.in                          |    6 +-
 src/cong-app.c                                |  140 ++++------
 src/cong-app.h                                |    7 +-
 src/cong-attribute-editor-cdata.c             |    9 +-
 src/cong-attribute-editor-enumeration.c       |   13 +-
 src/cong-attribute-editor-lang.c              |    9 +-
 src/cong-attribute-editor-nmtoken.c           |    9 +-
 src/cong-attribute-editor.c                   |   13 +-
 src/cong-attribute-wrapper-check-button.c     |   13 +-
 src/cong-attribute-wrapper-radio-button.c     |   13 +-
 src/cong-attribute-wrapper.c                  |   13 +-
 src/cong-command-history.c                    |   10 +-
 src/cong-command.c                            |   10 +-
 src/cong-dispspec-element.c                   |    6 +-
 src/cong-document-traversal.c                 |   14 +-
 src/cong-document.c                           |   14 +-
 src/cong-edit-find-and-replace.c              |    2 +
 src/cong-editor-area-bin.c                    |   10 +-
 src/cong-editor-area-border.c                 |   10 +-
 src/cong-editor-area-composer.c               |   10 +-
 src/cong-editor-area-container.c              |   10 +-
 src/cong-editor-area-entity-decl.c            |   10 +-
 src/cong-editor-area-entity-ref.c             |   10 +-
 src/cong-editor-area-expander.c               |   10 +-
 src/cong-editor-area-labelled.c               |   10 +-
 src/cong-editor-area-line.c                   |   10 +-
 src/cong-editor-area-pixbuf.c                 |   10 +-
 src/cong-editor-area-spacer.c                 |   10 +-
 src/cong-editor-area-span-tag.c               |   10 +-
 src/cong-editor-area-structural-tag.c         |   10 +-
 src/cong-editor-area-structural.c             |   10 +-
 src/cong-editor-area-text-comment.c           |   14 +-
 src/cong-editor-area-text-fragment.c          |   10 +-
 src/cong-editor-area-text.c                   |   10 +-
 src/cong-editor-area-underline.c              |   10 +-
 src/cong-editor-area-unknown-tag.c            |   12 +-
 src/cong-editor-area.c                        |   14 +-
 src/cong-editor-node-comment.c                |    1 -
 src/cong-editor-node-document.c               |    1 -
 src/cong-editor-node-dtd.c                    |    1 -
 src/cong-editor-node-element-span.c           |   10 +-
 src/cong-editor-node-element-structural.c     |    1 -
 src/cong-editor-node-element-unknown.c        |    1 -
 src/cong-editor-node-element.c                |   10 +-
 src/cong-editor-node-entity-decl.c            |   10 +-
 src/cong-editor-node-entity-ref.c             |   10 +-
 src/cong-editor-node-text.c                   |    1 -
 src/cong-editor-node-unimplemented.c          |   10 +-
 src/cong-editor-node.c                        |    1 -
 src/cong-editor-widget3.c                     |   18 +-
 src/cong-error-file-open.c                    |   13 +-
 src/cong-file-new.c                           |  365 +++++++++++--------------
 src/cong-glade.c                              |    7 +-
 src/cong-language.c                           |   10 +-
 src/cong-menus.c                              |   66 ++---
 src/cong-modification-cursor-change.c         |   14 +-
 src/cong-modification-selection-change.c      |   14 +-
 src/cong-modification-set-dtd-ptr.c           |   14 +-
 src/cong-modification.c                       |   10 +-
 src/cong-node-modification-add-after.c        |   14 +-
 src/cong-node-modification-add-before.c       |   14 +-
 src/cong-node-modification-make-orphan.c      |   14 +-
 src/cong-node-modification-remove-attribute.c |   14 +-
 src/cong-node-modification-set-attribute.c    |   14 +-
 src/cong-node-modification-set-parent.c       |   14 +-
 src/cong-node-modification-set-text.c         |   14 +-
 src/cong-node-modification.c                  |   10 +-
 src/cong-primary-window.c                     |   78 ++----
 src/cong-primary-window.h                     |    6 +-
 src/cong-property-page.c                      |   13 +-
 src/cong-service-document-factory.h           |   15 +-
 src/cong-traversal-node.c                     |   10 +-
 src/cong-util.c                               |   41 +---
 src/cong-xpath-expression.c                   |   14 +-
 src/global.h                                  |    3 +-
 src/main.c                                    |    2 +
 src/plugin-admonition-node-element.c          |   10 +-
 src/plugin-arbitrary.c                        |   10 +-
 src/plugin-css.c                              |    7 +-
 src/plugin-docbook.c                          |   59 ++---
 src/plugin-lists-area-listitem.c              |   10 +-
 src/plugin-lists-node-element-listitem.c      |    1 -
 src/plugin-paragraph-area-paragraph.c         |   10 +-
 src/plugin-paragraph-node-element-paragraph.c |    1 -
 src/plugin-random.c                           |   10 +-
 src/plugin-tests.c                            |   10 +-
 87 files changed, 613 insertions(+), 924 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 0ea8ff1..c8e36ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,9 +36,6 @@ dnl --- Package configuration ---
 GTK2_REQUIRED=2.10.0
 LIBXML_REQUIRED=2.0.0
 LIBXSLT_REQUIRED=1.0.0
-LIBBONOBO_REQUIRED=2.0.0
-LIBBONOBOUI_REQUIRED=2.0.0
-LIBGNOMEUI_REQUIRED=2.0.0
 LIBGNOMEPRINT_REQUIRED=1.116.0
 LIBGNOMEPRINTUI_REQUIRED=1.116.0
 LIBGLADE2_REQUIRED=2.0.0
@@ -50,15 +47,14 @@ ENCHANT_REQUIRED=0.1.0
 
 dnl --- Fundamentals ---
 
-PKG_CHECK_MODULES(CONGLOMERATE,		\
-  gtk+-2.0 >= $GTK2_REQUIRED            \
-  gconf-2.0 >= $GCONF2_REQUIRED		\
-  libxml-2.0 >= $LIBXML_REQUIRED	\
-  libxslt >= $LIBXSLT_REQUIRED		\
-  libbonobo-2.0 >= $LIBBONOBO_REQUIRED	\
-  libbonoboui-2.0 >= $LIBBONOBOUI_REQUIRED	\
-  libgnomeui-2.0 > $LIBGNOMEUI_REQUIRED	\
-  libglade-2.0 >= $LIBGLADE2_REQUIRED)
+PKG_CHECK_MODULES([CONGLOMERATE], [
+  gtk+-2.0 >= $GTK2_REQUIRED
+  gconf-2.0 >= $GCONF2_REQUIRED
+  libxml-2.0 >= $LIBXML_REQUIRED
+  libxslt >= $LIBXSLT_REQUIRED
+  gnome-vfs-2.0
+  libart-2.0
+  libglade-2.0 >= $LIBGLADE2_REQUIRED])
 
 AC_SUBST(CONGLOMERATE_LIBS)
 AC_SUBST(CONGLOMERATE_CFLAGS)
diff --git a/conglomerate.spec.in b/conglomerate.spec.in
index 77e467e..41c097b 100644
--- a/conglomerate.spec.in
+++ b/conglomerate.spec.in
@@ -16,8 +16,8 @@ Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
 Source: http://dl.sf.net/conglomerate/conglomerate-%{version}.tar.gz
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 
-BuildRequires: gettext, libxml2-devel >= 2.0, gcc-c++, gtk2-devel >= 2.4
-BuildRequires: libgnomeui-devel >= 2.0, libglade2-devel >= 2.0
+BuildRequires: gettext, libxml2-devel >= 2.0, gcc-c++, gtk2-devel >= 2.10
+BuildRequires: libglade2-devel >= 2.0
 BuildRequires: libgnomeprintui22-devel, gtksourceview-devel, gtk-doc
 BuildRequires: scrollkeeper
 
@@ -71,8 +71,6 @@ scrollkeeper-update -q || :
 %{_datadir}/conglomerate/
 %{_datadir}/mime-info/conglomerate.*
 %{_datadir}/omf/conglomerate/
-%{_datadir}/pixmaps/conglomerate-icon-16.png
-%{_datadir}/pixmaps/conglomerate/
 %exclude %{_localstatedir}/scrollkeeper/ 
 
 %changelog
diff --git a/src/cong-app.c b/src/cong-app.c
index 3d2666a..42d7108 100644
--- a/src/cong-app.c
+++ b/src/cong-app.c
@@ -22,6 +22,8 @@
  * Authors: David Malcolm <david davemalcolm demon co uk>
  */
 
+#include <string.h>
+
 #include "global.h"
 #include "cong-app.h"
 #include "cong-dialog.h"
@@ -68,7 +70,6 @@ struct CongSelectionData
 
 struct _CongAppPrivate
 {
-	GnomeProgram *gnome_program;
 	CongPluginManager *plugin_manager;
 #if 0
 	GdkGC *insert_element_gc;
@@ -78,8 +79,6 @@ struct _CongAppPrivate
 	GtkTooltips *tooltips;
 	CongFont *fonts[CONG_FONT_ROLE_NUM];
 
-	const GList *language_list;
-
 	CongSelectionData clipboard_selection;
 	CongSelectionData primary_selection;
 
@@ -841,21 +840,6 @@ cong_app_set_clipboard_from_xml_fragment (CongApp *app,
 }
 
 /**
- * cong_app_get_gnome_program:
- * @app:
- *
- * TODO: Write me
- * Returns:
- */
-GnomeProgram*
-cong_app_get_gnome_program (CongApp *app)
-{
-	g_return_val_if_fail (app, NULL);
-
-	return PRIVATE(app)->gnome_program;
-}
-
-/**
  * cong_app_get_tooltips:
  * @app:
  *
@@ -933,65 +917,47 @@ cong_app_get_gconf_client (CongApp *app)
 	return PRIVATE(app)->gconf_client;
 }
 
-/**
- * cong_app_get_language_list:
- * @app:
- *
- * TODO: Write me
- * Returns:
- */
-const GList*
-cong_app_get_language_list (CongApp *app)
-{
-	g_return_val_if_fail (app, NULL);
-
-	return PRIVATE(app)->language_list;
-}
-
 int unit_test = FALSE;
+static gchar **startup_files = NULL;
 
-const struct poptOption options[] = {
+static const GOptionEntry options[] = {
 	{
 		"unit-test",
 		'\0',
-		POPT_ARG_NONE,
-		&unit_test,
 		0,
+		G_OPTION_ARG_NONE,
+		&unit_test,
 		N_("Unit test: quit immediately (after loading any files specified on the command-line)"),
 		NULL
 	},
 	{
-		NULL,
-		'\0',
+		G_OPTION_REMAINING,
 		0,
-		NULL,
 		0,
-		NULL,
-		NULL
-	}
+		G_OPTION_ARG_FILENAME_ARRAY,
+		&startup_files,
+		"",
+		N_("[FILE1 FILE2 ...]")
+	},
+	{ NULL }
 };
 
 static gboolean
-handle_cmdline_args (gpointer data)
+handle_cmdline_args ()
 {
-	poptContext ctx;
-	const gchar **startup_files;
+	GError *error = NULL;
 	gchar *uri;
 	int i;
 
-	ctx = data;
-	startup_files = poptGetArgs (ctx);
-
 	if (startup_files) {
 		for (i = 0; startup_files [i]; ++i) {
 		       uri = gnome_vfs_make_uri_from_shell_arg (startup_files[i]);
 		       open_document_do (uri, NULL);
 		       g_free(uri);
 		   }
+		   g_strfreev (startup_files);
 	}
 	
-	poptFreeContext (ctx);
-
 	/* Quit immediately after load, for a unit test: */
 	if (unit_test) {
 		gtk_main_quit ();
@@ -1007,28 +973,23 @@ cong_app_new (int   argc,
 	      char *argv[])
 {
 	CongApp *app;
-	GValue value = { 0 };
-	poptContext ctx;
+	GError *error = NULL;
+	GOptionContext *context;
 
 	app = g_new0(CongApp,1);
 	app->private = g_new0(CongAppPrivate,1);
 
+	g_set_application_name(_("XML Editor"));
 
-	/* Set up the GnomeProgram: */
-	PRIVATE(app)->gnome_program = gnome_program_init (PACKAGE_NAME, PACKAGE_VERSION,
-							  LIBGNOMEUI_MODULE,
-							  argc,argv,
-							  GNOME_PARAM_HUMAN_READABLE_NAME, _("XML Editor"),
-							  GNOME_PARAM_POPT_TABLE, options,
-							  GNOME_PROGRAM_STANDARD_PROPERTIES,
-							  GNOME_PARAM_NONE);
+	context = g_option_context_new(_("- XML Editor"));
+	g_option_context_add_main_entries(context, options, GETTEXT_PACKAGE);
+	g_option_context_add_group(context, gtk_get_option_group (TRUE));
+	if(!g_option_context_parse (context, &argc, &argv, &error))
+	{
+		g_critical("option parsing failed: %s", error->message);
+	}
 
-	g_value_init (&value, G_TYPE_POINTER);
-	g_object_get_property (G_OBJECT (PRIVATE (app)->gnome_program), GNOME_PARAM_POPT_CONTEXT,
-			       &value);
-	ctx = g_value_get_pointer (&value);
-	g_value_unset (&value);
-	g_idle_add (handle_cmdline_args, ctx);
+	g_idle_add (handle_cmdline_args, NULL);
 
 	/* Set up usage of GConf: */
 	PRIVATE(app)->gconf_client = gconf_client_get_default();
@@ -1041,26 +1002,10 @@ cong_app_new (int   argc,
 
 	PRIVATE(app)->tooltips = gtk_tooltips_new();
 
-	PRIVATE(app)->language_list = gnome_i18n_get_language_list (NULL);
-
-#if 0
-	/* Debug the language list: */
-	{
-		const GList *iter;
-
-		for (iter = PRIVATE(app)->language_list; iter; iter=iter->next) {
-			g_message ("\"%s\"", (gchar*)iter->data);
-		}
-	}
-#endif
-
 	/* Load stylesheets: */
 	{
-		gchar *stylesheet_file = gnome_program_locate_file (PRIVATE(app)->gnome_program,
-								    GNOME_FILE_DOMAIN_APP_DATADIR,
-								    "conglomerate/stylesheets/selection-to-text.xsl",
-								    FALSE,
-								    NULL);
+		gchar *stylesheet_file = cong_app_locate_file (app,
+							       "conglomerate/stylesheets/selection-to-text.xsl");
 
 		PRIVATE (app)->xsl_selection_to_text = xsltParseStylesheetFile ((const xmlChar*)stylesheet_file);
 		if (PRIVATE (app)->xsl_selection_to_text==NULL) {
@@ -1138,11 +1083,8 @@ cong_app_private_load_displayspecs (CongApp *app,
 
 	/* Finally, try the standard installation path.  This used to be listed in the GConf path, see Bugzilla #129776 */
 	{
-		gchar* xds_directory = gnome_program_locate_file (PRIVATE(app)->gnome_program,
-								  GNOME_FILE_DOMAIN_APP_DATADIR,
-								  "conglomerate/dispspecs",
-								  FALSE,
-								  NULL);
+		gchar* xds_directory = cong_app_locate_file (app,
+							     "conglomerate/dispspecs");
 
 		
 		cong_dispspec_registry_add_dir (PRIVATE(app)->ds_registry, xds_directory, toplevel_window, 0);
@@ -1190,3 +1132,23 @@ cong_app_private_insert_element_init (CongApp *app)
 	gdk_gc_set_foreground(app->insert_element_gc, &gcol);
 #endif
 }
+
+char *
+cong_app_locate_file(CongApp *app, const char *file_name)
+{
+	char *full_path = g_build_filename(DATADIR, file_name, NULL);
+
+	if(!g_file_test(full_path, G_FILE_TEST_EXISTS)) {
+		char *why_failed = g_strdup_printf(_("The file '%s' was not in the expected location."), file_name);
+		GtkDialog *dialog = cong_error_dialog_new(NULL,
+			_("Conglomerate could not find a data file."),
+			why_failed,
+			_("If you see this error, it is likely that you built Conglomerate, but did not install it. Try installing it."));
+		g_free(why_failed);
+		cong_error_dialog_run(dialog);
+		gtk_widget_destroy(GTK_WIDGET(dialog));
+		g_error("Could not find data file '%s' in '%s'", file_name, full_path);
+	}
+
+	return full_path;
+}
diff --git a/src/cong-app.h b/src/cong-app.h
index f03166d..226c8c2 100644
--- a/src/cong-app.h
+++ b/src/cong-app.h
@@ -65,9 +65,6 @@ cong_app_set_clipboard_from_xml_fragment (CongApp *app,
 					  const gchar* xml_fragment,
 					  CongDocument *source_doc);
 
-GnomeProgram*
-cong_app_get_gnome_program (CongApp *app);
-
 GtkTooltips*
 cong_app_get_tooltips (CongApp *app);
 
@@ -84,8 +81,8 @@ cong_app_get_dispspec_registry (CongApp *app);
 GConfClient*
 cong_app_get_gconf_client (CongApp *app);
 
-const GList*
-cong_app_get_language_list (CongApp *app);
+char *
+cong_app_locate_file(CongApp *app, const char *file_name);
 
 G_END_DECLS
 
diff --git a/src/cong-attribute-editor-cdata.c b/src/cong-attribute-editor-cdata.c
index 1adbc69..82ee91c 100644
--- a/src/cong-attribute-editor-cdata.c
+++ b/src/cong-attribute-editor-cdata.c
@@ -56,10 +56,9 @@ do_refresh (CongAttributeEditorCData *attribute_editor_cdata);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeEditorCData, 
-			cong_attribute_editor_cdata,
-			CongAttributeEditor,
-			CONG_ATTRIBUTE_EDITOR_TYPE);
+G_DEFINE_TYPE(CongAttributeEditorCData,
+              cong_attribute_editor_cdata,
+              CONG_ATTRIBUTE_EDITOR_TYPE);
 
 static void
 cong_attribute_editor_cdata_class_init (CongAttributeEditorCDataClass *klass)
@@ -71,7 +70,7 @@ cong_attribute_editor_cdata_class_init (CongAttributeEditorCDataClass *klass)
 }
 
 static void
-cong_attribute_editor_cdata_instance_init (CongAttributeEditorCData *area)
+cong_attribute_editor_cdata_init (CongAttributeEditorCData *area)
 {
 	area->private = g_new0(CongAttributeEditorCDataDetails,1);
 }
diff --git a/src/cong-attribute-editor-enumeration.c b/src/cong-attribute-editor-enumeration.c
index 147a5b8..2ab7dcb 100644
--- a/src/cong-attribute-editor-enumeration.c
+++ b/src/cong-attribute-editor-enumeration.c
@@ -56,10 +56,9 @@ on_selection_changed (GtkComboBox *combo_box,
 		      CongAttributeEditorEnumeration *attribute_editor_enumeration);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeEditorEnumeration, 
-			cong_attribute_editor_enumeration,
-			CongAttributeEditor,
-			CONG_ATTRIBUTE_EDITOR_TYPE);
+G_DEFINE_TYPE(CongAttributeEditorEnumeration,
+              cong_attribute_editor_enumeration,
+              CONG_ATTRIBUTE_EDITOR_TYPE);
 
 static void
 cong_attribute_editor_enumeration_class_init (CongAttributeEditorEnumerationClass *klass)
@@ -74,7 +73,7 @@ cong_attribute_editor_enumeration_class_init (CongAttributeEditorEnumerationClas
 }
 
 static void
-cong_attribute_editor_enumeration_instance_init (CongAttributeEditorEnumeration *area)
+cong_attribute_editor_enumeration_init (CongAttributeEditorEnumeration *area)
 {
 	area->private = g_new0(CongAttributeEditorEnumerationDetails,1);
 }
@@ -189,7 +188,7 @@ finalize (GObject *object)
 	g_free (PRIVATE(attribute_editor_enumeration));
 	PRIVATE(attribute_editor_enumeration) = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_attribute_editor_enumeration_parent_class)->finalize (object);
 }
 
 static void
@@ -203,7 +202,7 @@ dispose (GObject *object)
 		PRIVATE(attribute_editor_enumeration)->combo_array = NULL;
 	}
 
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_attribute_editor_enumeration_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-attribute-editor-lang.c b/src/cong-attribute-editor-lang.c
index ef28c50..0654cf1 100644
--- a/src/cong-attribute-editor-lang.c
+++ b/src/cong-attribute-editor-lang.c
@@ -90,10 +90,9 @@ on_selection_changed (GtkTreeSelection *selected, gpointer user_data);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeEditorLang, 
-			cong_attribute_editor_lang,
-			CongAttributeEditor,
-			CONG_ATTRIBUTE_EDITOR_TYPE);
+G_DEFINE_TYPE(CongAttributeEditorLang,
+              cong_attribute_editor_lang,
+              CONG_ATTRIBUTE_EDITOR_TYPE);
 
 static void
 cong_attribute_editor_lang_class_init (CongAttributeEditorLangClass *klass)
@@ -105,7 +104,7 @@ cong_attribute_editor_lang_class_init (CongAttributeEditorLangClass *klass)
 }
 
 static void
-cong_attribute_editor_lang_instance_init (CongAttributeEditorLang *attribute_editor)
+cong_attribute_editor_lang_init (CongAttributeEditorLang *attribute_editor)
 {
 	attribute_editor->private = g_new0(CongAttributeEditorLangDetails,1);
 }
diff --git a/src/cong-attribute-editor-nmtoken.c b/src/cong-attribute-editor-nmtoken.c
index e15de3d..20aabab 100644
--- a/src/cong-attribute-editor-nmtoken.c
+++ b/src/cong-attribute-editor-nmtoken.c
@@ -59,10 +59,9 @@ do_refresh (CongAttributeEditorNmtoken *attribute_editor_nmtoken);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeEditorNmtoken, 
-			cong_attribute_editor_nmtoken,
-			CongAttributeEditor,
-			CONG_ATTRIBUTE_EDITOR_TYPE);
+G_DEFINE_TYPE(CongAttributeEditorNmtoken,
+              cong_attribute_editor_nmtoken,
+              CONG_ATTRIBUTE_EDITOR_TYPE);
 
 static void
 cong_attribute_editor_nmtoken_class_init (CongAttributeEditorNmtokenClass *klass)
@@ -74,7 +73,7 @@ cong_attribute_editor_nmtoken_class_init (CongAttributeEditorNmtokenClass *klass
 }
 
 static void
-cong_attribute_editor_nmtoken_instance_init (CongAttributeEditorNmtoken *area)
+cong_attribute_editor_nmtoken_init (CongAttributeEditorNmtoken *area)
 {
 	area->private = g_new0(CongAttributeEditorNmtokenDetails,1);
 }
diff --git a/src/cong-attribute-editor.c b/src/cong-attribute-editor.c
index 652ec8b..b776422 100644
--- a/src/cong-attribute-editor.c
+++ b/src/cong-attribute-editor.c
@@ -67,10 +67,9 @@ on_remove_attribute (CongDocument *doc,
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeEditor, 
-			cong_attribute_editor,
-			GtkHBox,
-			GTK_TYPE_HBOX);
+G_DEFINE_TYPE(CongAttributeEditor,
+              cong_attribute_editor,
+              GTK_TYPE_HBOX);
 
 CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_attribute_editor, set_attribute_handler);
 CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_attribute_editor, remove_attribute_handler);
@@ -90,7 +89,7 @@ cong_attribute_editor_class_init (CongAttributeEditorClass *klass)
 }
 
 static void
-cong_attribute_editor_instance_init (CongAttributeEditor *attribute_editor)
+cong_attribute_editor_init (CongAttributeEditor *attribute_editor)
 {
 	attribute_editor->private = g_new0(CongAttributeEditorDetails,1);
 }
@@ -374,7 +373,7 @@ finalize (GObject *object)
 	g_free (attribute_editor->private);
 	attribute_editor->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_attribute_editor_parent_class)->finalize (object);
 }
 
 static void
@@ -398,7 +397,7 @@ dispose (GObject *object)
 		g_free (PRIVATE(attribute_editor)->attribute_name);
 	}
 		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_attribute_editor_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-attribute-wrapper-check-button.c b/src/cong-attribute-wrapper-check-button.c
index bccaa2a..1526f0f 100644
--- a/src/cong-attribute-wrapper-check-button.c
+++ b/src/cong-attribute-wrapper-check-button.c
@@ -61,10 +61,9 @@ static gboolean
 should_button_be_active (CongAttributeWrapperCheckButton *attribute_wrapper);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeWrapperCheckButton, 
-			cong_attribute_wrapper_check_button,
-			CongAttributeWrapper,
-			CONG_ATTRIBUTE_WRAPPER_TYPE);
+G_DEFINE_TYPE(CongAttributeWrapperCheckButton,
+              cong_attribute_wrapper_check_button,
+              CONG_ATTRIBUTE_WRAPPER_TYPE);
 
 static void
 cong_attribute_wrapper_check_button_class_init (CongAttributeWrapperCheckButtonClass *klass)
@@ -79,7 +78,7 @@ cong_attribute_wrapper_check_button_class_init (CongAttributeWrapperCheckButtonC
 }
 
 static void
-cong_attribute_wrapper_check_button_instance_init (CongAttributeWrapperCheckButton *attribute_wrapper)
+cong_attribute_wrapper_check_button_init (CongAttributeWrapperCheckButton *attribute_wrapper)
 {
 	attribute_wrapper->private = g_new0(CongAttributeWrapperCheckButtonDetails,1);
 }
@@ -185,7 +184,7 @@ finalize (GObject *object)
 	g_free (attribute_wrapper_check_button->private);
 	attribute_wrapper_check_button->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_attribute_wrapper_check_button_parent_class)->finalize (object);
 }
 
 static void
@@ -202,7 +201,7 @@ dispose (GObject *object)
 		PRIVATE(attribute_wrapper)->attribute_value_checked = NULL;
 	}
 	
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_attribute_wrapper_check_button_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-attribute-wrapper-radio-button.c b/src/cong-attribute-wrapper-radio-button.c
index 91b35c3..1dd2b99 100644
--- a/src/cong-attribute-wrapper-radio-button.c
+++ b/src/cong-attribute-wrapper-radio-button.c
@@ -60,10 +60,9 @@ static gboolean
 should_button_be_active (CongAttributeWrapperRadioButton *attribute_wrapper);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeWrapperRadioButton, 
-			cong_attribute_wrapper_radio_button,
-			CongAttributeWrapper,
-			CONG_ATTRIBUTE_WRAPPER_TYPE);
+G_DEFINE_TYPE(CongAttributeWrapperRadioButton,
+              cong_attribute_wrapper_radio_button,
+              CONG_ATTRIBUTE_WRAPPER_TYPE);
 
 static void
 cong_attribute_wrapper_radio_button_class_init (CongAttributeWrapperRadioButtonClass *klass)
@@ -78,7 +77,7 @@ cong_attribute_wrapper_radio_button_class_init (CongAttributeWrapperRadioButtonC
 }
 
 static void
-cong_attribute_wrapper_radio_button_instance_init (CongAttributeWrapperRadioButton *attribute_wrapper)
+cong_attribute_wrapper_radio_button_init (CongAttributeWrapperRadioButton *attribute_wrapper)
 {
 	attribute_wrapper->private = g_new0(CongAttributeWrapperRadioButtonDetails,1);
 }
@@ -177,7 +176,7 @@ finalize (GObject *object)
 	g_free (attribute_wrapper_radio_button->private);
 	attribute_wrapper_radio_button->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_attribute_wrapper_radio_button_parent_class)->finalize (object);
 }
 
 static void
@@ -190,7 +189,7 @@ dispose (GObject *object)
 		PRIVATE(attribute_wrapper_radio_button)->attribute_value = NULL;
 	}
 	
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_attribute_wrapper_radio_button_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-attribute-wrapper.c b/src/cong-attribute-wrapper.c
index f2b977c..b1fb43f 100644
--- a/src/cong-attribute-wrapper.c
+++ b/src/cong-attribute-wrapper.c
@@ -64,10 +64,9 @@ on_remove_attribute (CongDocument *doc,
 		     CongAttributeWrapper *attribute_wrapper);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongAttributeWrapper, 
-			cong_attribute_wrapper,
-			GObject,
-			G_TYPE_OBJECT);
+G_DEFINE_TYPE(CongAttributeWrapper,
+              cong_attribute_wrapper,
+              G_TYPE_OBJECT);
 
 CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_attribute_wrapper, set_attribute_handler);
 CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_attribute_wrapper, remove_attribute_handler);
@@ -87,7 +86,7 @@ cong_attribute_wrapper_class_init (CongAttributeWrapperClass *klass)
 }
 
 static void
-cong_attribute_wrapper_instance_init (CongAttributeWrapper *attribute_wrapper)
+cong_attribute_wrapper_init (CongAttributeWrapper *attribute_wrapper)
 {
 	attribute_wrapper->private = g_new0(CongAttributeWrapperDetails,1);
 }
@@ -285,7 +284,7 @@ finalize (GObject *object)
 	g_free (attribute_wrapper->private);
 	attribute_wrapper->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_attribute_wrapper_parent_class)->finalize (object);
 }
 
 static void
@@ -306,7 +305,7 @@ dispose (GObject *object)
 		g_free (PRIVATE(attribute_wrapper)->attribute_name);
 	}
 		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_attribute_wrapper_parent_class)->finalize (object);
 }
 
 static void
diff --git a/src/cong-command-history.c b/src/cong-command-history.c
index 4a092c6..c1fee64 100644
--- a/src/cong-command-history.c
+++ b/src/cong-command-history.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-command-history.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-document.h"
@@ -51,10 +50,9 @@ struct _CongCommandHistoryDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongCommandHistory, 
-			cong_command_history,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongCommandHistory,
+              cong_command_history,
+              G_TYPE_OBJECT );
 
 static void
 cong_command_history_class_init (CongCommandHistoryClass *klass)
@@ -70,7 +68,7 @@ cong_command_history_class_init (CongCommandHistoryClass *klass)
 }
 
 static void
-cong_command_history_instance_init (CongCommandHistory *history)
+cong_command_history_init (CongCommandHistory *history)
 {
 	history->private = g_new0(CongCommandHistoryDetails,1);
 }
diff --git a/src/cong-command.c b/src/cong-command.c
index 6d97583..cd31bbc 100644
--- a/src/cong-command.c
+++ b/src/cong-command.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-command.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-util.h"
 
@@ -68,10 +67,9 @@ struct _CongCommandDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongCommand, 
-			cong_command,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongCommand,
+              cong_command,
+              G_TYPE_OBJECT);
 
 static void
 cong_command_class_init (CongCommandClass *klass)
@@ -79,7 +77,7 @@ cong_command_class_init (CongCommandClass *klass)
 }
 
 static void
-cong_command_instance_init (CongCommand *node)
+cong_command_init (CongCommand *node)
 {
 	node->priv = g_new0(CongCommandDetails,1);
 }
diff --git a/src/cong-dispspec-element.c b/src/cong-dispspec-element.c
index 8194772..4c8dbbb 100644
--- a/src/cong-dispspec-element.c
+++ b/src/cong-dispspec-element.c
@@ -889,13 +889,13 @@ cong_dispspec_element_to_xml (const CongDispspecElement *element,
 static gpointer
 find_best_value_for_language (GHashTable *hash_of_language)
 {
-	const GList *iter;
+	const char * const *language_list;
 
 	g_assert (hash_of_language);
 
-	for (iter = cong_app_get_language_list (cong_app_singleton ()); iter; iter=iter->next) {
+	for (language_list = g_get_language_names (); *language_list; language_list++) {
 		gpointer value = g_hash_table_lookup (hash_of_language,
-						      (gchar*)iter->data);
+						      *language_list);
 
 		if (value) {
 			return value;
diff --git a/src/cong-document-traversal.c b/src/cong-document-traversal.c
index b93edcd..23ecba6 100644
--- a/src/cong-document-traversal.c
+++ b/src/cong-document-traversal.c
@@ -2,7 +2,6 @@
 #include <gtk/gtk.h>
 #include "global.h"
 #include "cong-selection.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-util.h"
 #include "cong-marshal.h"
 #include "cong-document-traversal.h"
@@ -142,10 +141,9 @@ struct _CongDocumentTraversalDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongDocumentTraversal, 
-			cong_document_traversal,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongDocumentTraversal,
+              cong_document_traversal,
+              G_TYPE_OBJECT );
 
 static void
 cong_document_traversal_class_init (CongDocumentTraversalClass *klass)
@@ -174,7 +172,7 @@ cong_document_traversal_class_init (CongDocumentTraversalClass *klass)
 }
 
 static void
-cong_document_traversal_instance_init (CongDocumentTraversal *doc)
+cong_document_traversal_init (CongDocumentTraversal *doc)
 {
 	doc->private = g_new0(CongDocumentTraversalDetails,1);
 }
@@ -766,7 +764,7 @@ finalize (GObject *object)
 	g_free (doc_traversal->private);
 	doc_traversal->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_document_traversal_parent_class)->finalize (object);
 }
 
 static void
@@ -781,7 +779,7 @@ dispose (GObject *object)
 	/* FIXME: */
 	
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_document_traversal_parent_class)->dispose (object);
 }
 
 /**
diff --git a/src/cong-document.c b/src/cong-document.c
index fdda999..27982a8 100644
--- a/src/cong-document.c
+++ b/src/cong-document.c
@@ -7,7 +7,6 @@
 #include "cong-dispspec.h"
 #include "cong-dispspec-element.h"
 #include "cong-selection.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-util.h"
 #include "cong-primary-window.h"
 #include "cong-command.h"
@@ -150,10 +149,9 @@ struct _CongDocumentDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongDocument, 
-			cong_document,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongDocument,
+              cong_document,
+              G_TYPE_OBJECT );
 
 static void
 cong_document_class_init (CongDocumentClass *klass)
@@ -295,7 +293,7 @@ cong_document_class_init (CongDocumentClass *klass)
 }
 
 static void
-cong_document_instance_init (CongDocument *doc)
+cong_document_init (CongDocument *doc)
 {
 	doc->private = g_new0(CongDocumentDetails,1);
 }
@@ -2351,7 +2349,7 @@ cong_document_finalize (GObject *object)
 	g_free (doc->private);
 	doc->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_document_parent_class)->finalize (object);
 }
 
 static void
@@ -2408,7 +2406,7 @@ cong_document_dispose (GObject *object)
 	*/
 	
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_document_parent_class)->dispose (object);
 }
 
 /* Implementation of default signal handlers: */
diff --git a/src/cong-edit-find-and-replace.c b/src/cong-edit-find-and-replace.c
index aa933a9..9eead1e 100644
--- a/src/cong-edit-find-and-replace.c
+++ b/src/cong-edit-find-and-replace.c
@@ -505,11 +505,13 @@ setup_find_data_from_dialog (CongDialogReplace *dialog)
 	search_string = gtk_entry_get_text (GTK_ENTRY (dialog->search_entry));		
 	replace_string = gtk_entry_get_text (GTK_ENTRY (dialog->replace_entry));		
 
+#if 0
         if (search_string && strlen(search_string) > 0)
   	  gnome_entry_prepend_history (GNOME_ENTRY (dialog->search_entry_list), TRUE, search_string);
 
         if (replace_string && strlen(replace_string) > 0)
   	  gnome_entry_prepend_history (GNOME_ENTRY (dialog->replace_entry_list), TRUE, replace_string);
+#endif
 		
 	/* retrieve search settings from the dialog */
 	case_sensitive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->match_case_checkbutton));
diff --git a/src/cong-editor-area-bin.c b/src/cong-editor-area-bin.c
index 56904ac..60a03c2 100644
--- a/src/cong-editor-area-bin.c
+++ b/src/cong-editor-area-bin.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-bin.h"
-#include <libgnome/gnome-macros.h>
 
 #define PRIVATE(x) ((x)->private)
 
@@ -59,10 +58,9 @@ remove_child (CongEditorAreaContainer *area_container,
 	      CongEditorArea *child);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaBin, 
-			cong_editor_area_bin,
-			CongEditorAreaContainer,
-			CONG_EDITOR_AREA_CONTAINER_TYPE );
+G_DEFINE_TYPE(CongEditorAreaBin,
+              cong_editor_area_bin,
+              CONG_EDITOR_AREA_CONTAINER_TYPE );
 
 static void
 cong_editor_area_bin_class_init (CongEditorAreaBinClass *klass)
@@ -81,7 +79,7 @@ cong_editor_area_bin_class_init (CongEditorAreaBinClass *klass)
 }
 
 static void
-cong_editor_area_bin_instance_init (CongEditorAreaBin *area_bin)
+cong_editor_area_bin_init (CongEditorAreaBin *area_bin)
 {
 	area_bin->private = g_new0(CongEditorAreaBinDetails,1);
 }
diff --git a/src/cong-editor-area-border.c b/src/cong-editor-area-border.c
index 089af99..5ad058f 100644
--- a/src/cong-editor-area-border.c
+++ b/src/cong-editor-area-border.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-border.h"
-#include <libgnome/gnome-macros.h>
 
 #define PRIVATE(x) ((x)->private)
 
@@ -46,10 +45,9 @@ static void
 allocate_child_space (CongEditorArea *area);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaBorder, 
-			cong_editor_area_border,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaBorder,
+              cong_editor_area_border,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_border_class_init (CongEditorAreaBorderClass *klass)
@@ -61,7 +59,7 @@ cong_editor_area_border_class_init (CongEditorAreaBorderClass *klass)
 }
 
 static void
-cong_editor_area_border_instance_init (CongEditorAreaBorder *area_border)
+cong_editor_area_border_init (CongEditorAreaBorder *area_border)
 {
 	area_border->private = g_new0(CongEditorAreaBorderDetails,1);
 }
diff --git a/src/cong-editor-area-composer.c b/src/cong-editor-area-composer.c
index bbce7e8..0c2f3f5 100644
--- a/src/cong-editor-area-composer.c
+++ b/src/cong-editor-area-composer.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-composer.h"
-#include <libgnome/gnome-macros.h>
 
 #define DEBUG_CHILD_ALLOCATIONS 0
 
@@ -81,10 +80,9 @@ get_child_details (CongEditorAreaComposer *area_composer,
 		   CongEditorArea *child);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaComposer, 
-			cong_editor_area_composer,
-			CongEditorAreaContainer,
-			CONG_EDITOR_AREA_CONTAINER_TYPE );
+G_DEFINE_TYPE(CongEditorAreaComposer,
+              cong_editor_area_composer,
+              CONG_EDITOR_AREA_CONTAINER_TYPE );
 
 static void
 cong_editor_area_composer_class_init (CongEditorAreaComposerClass *klass)
@@ -103,7 +101,7 @@ cong_editor_area_composer_class_init (CongEditorAreaComposerClass *klass)
 }
 
 static void
-cong_editor_area_composer_instance_init (CongEditorAreaComposer *area_composer)
+cong_editor_area_composer_init (CongEditorAreaComposer *area_composer)
 {
 	area_composer->private = g_new0(CongEditorAreaComposerDetails,1);
 }
diff --git a/src/cong-editor-area-container.c b/src/cong-editor-area-container.c
index 101d5c0..74b97b9 100644
--- a/src/cong-editor-area-container.c
+++ b/src/cong-editor-area-container.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-container.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -61,10 +60,9 @@ on_child_flush_requisition_cache (CongEditorArea *child_area,
 				  gpointer user_data);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaContainer, 
-			cong_editor_area_container,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaContainer,
+              cong_editor_area_container,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_container_class_init (CongEditorAreaContainerClass *klass)
@@ -103,7 +101,7 @@ cong_editor_area_container_class_init (CongEditorAreaContainerClass *klass)
 }
 
 static void
-cong_editor_area_container_instance_init (CongEditorAreaContainer *area_container)
+cong_editor_area_container_init (CongEditorAreaContainer *area_container)
 {
 	area_container->private = g_new0(CongEditorAreaContainerDetails,1);
 }
diff --git a/src/cong-editor-area-entity-decl.c b/src/cong-editor-area-entity-decl.c
index fbfd1a9..d9f00c0 100644
--- a/src/cong-editor-area-entity-decl.c
+++ b/src/cong-editor-area-entity-decl.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-entity-decl.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-text.h"
@@ -71,10 +70,9 @@ add_child (CongEditorAreaContainer *area_container,
 	   gboolean add_to_end);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaEntityDecl, 
-			cong_editor_area_entity_decl,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaEntityDecl,
+              cong_editor_area_entity_decl,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_entity_decl_class_init (CongEditorAreaEntityDeclClass *klass)
@@ -91,7 +89,7 @@ cong_editor_area_entity_decl_class_init (CongEditorAreaEntityDeclClass *klass)
 }
 
 static void
-cong_editor_area_entity_decl_instance_init (CongEditorAreaEntityDecl *area_entity_decl)
+cong_editor_area_entity_decl_init (CongEditorAreaEntityDecl *area_entity_decl)
 {
 	area_entity_decl->private = g_new0(CongEditorAreaEntityDeclDetails,1);
 }
diff --git a/src/cong-editor-area-entity-ref.c b/src/cong-editor-area-entity-ref.c
index 2c8e106..2438406 100644
--- a/src/cong-editor-area-entity-ref.c
+++ b/src/cong-editor-area-entity-ref.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-entity-ref.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-text.h"
@@ -71,10 +70,9 @@ add_child (CongEditorAreaContainer *area_container,
 	   gboolean add_to_end);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaEntityRef, 
-			cong_editor_area_entity_ref,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaEntityRef,
+              cong_editor_area_entity_ref,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_entity_ref_class_init (CongEditorAreaEntityRefClass *klass)
@@ -91,7 +89,7 @@ cong_editor_area_entity_ref_class_init (CongEditorAreaEntityRefClass *klass)
 }
 
 static void
-cong_editor_area_entity_ref_instance_init (CongEditorAreaEntityRef *area_entity_ref)
+cong_editor_area_entity_ref_init (CongEditorAreaEntityRef *area_entity_ref)
 {
 	area_entity_ref->private = g_new0(CongEditorAreaEntityRefDetails,1);
 }
diff --git a/src/cong-editor-area-expander.c b/src/cong-editor-area-expander.c
index c05ec52..f152b53 100644
--- a/src/cong-editor-area-expander.c
+++ b/src/cong-editor-area-expander.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-expander.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -64,10 +63,9 @@ gint
 on_timeout (gpointer data);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaExpander, 
-			cong_editor_area_expander,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaExpander,
+              cong_editor_area_expander,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_expander_class_init (CongEditorAreaExpanderClass *klass)
@@ -88,7 +86,7 @@ cong_editor_area_expander_class_init (CongEditorAreaExpanderClass *klass)
 }
 
 static void
-cong_editor_area_expander_instance_init (CongEditorAreaExpander *area_expander)
+cong_editor_area_expander_init (CongEditorAreaExpander *area_expander)
 {
 	area_expander->private = g_new0(CongEditorAreaExpanderDetails,1);
 }
diff --git a/src/cong-editor-area-labelled.c b/src/cong-editor-area-labelled.c
index 7975887..dec7514 100644
--- a/src/cong-editor-area-labelled.c
+++ b/src/cong-editor-area-labelled.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-labelled.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-eel.h"
 #include "cong-app.h"
@@ -65,10 +64,9 @@ add_child (CongEditorAreaContainer *area_container,
 	   gboolean add_to_end);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaLabelled, 
-			cong_editor_area_labelled,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaLabelled,
+              cong_editor_area_labelled,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_labelled_class_init (CongEditorAreaLabelledClass *klass)
@@ -86,7 +84,7 @@ cong_editor_area_labelled_class_init (CongEditorAreaLabelledClass *klass)
 }
 
 static void
-cong_editor_area_labelled_instance_init (CongEditorAreaLabelled *area_labelled)
+cong_editor_area_labelled_init (CongEditorAreaLabelled *area_labelled)
 {
 	area_labelled->private = g_new0(CongEditorAreaLabelledDetails,1);
 }
diff --git a/src/cong-editor-area-line.c b/src/cong-editor-area-line.c
index a27b5cc..4798d16 100644
--- a/src/cong-editor-area-line.c
+++ b/src/cong-editor-area-line.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-line.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-editor-area-composer.h"
 #include "cong-editor-area-container.h"
@@ -73,10 +72,9 @@ set_to_not_expand_cb (CongEditorArea *editor_area,
 		      gpointer user_data);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaLine, 
-			cong_editor_area_line,
-			CongEditorAreaContainer,
-			CONG_EDITOR_AREA_CONTAINER_TYPE );
+G_DEFINE_TYPE(CongEditorAreaLine,
+              cong_editor_area_line,
+              CONG_EDITOR_AREA_CONTAINER_TYPE );
 
 static void
 cong_editor_area_line_class_init (CongEditorAreaLineClass *klass)
@@ -94,7 +92,7 @@ cong_editor_area_line_class_init (CongEditorAreaLineClass *klass)
 }
 
 static void
-cong_editor_area_line_instance_init (CongEditorAreaLine *line)
+cong_editor_area_line_init (CongEditorAreaLine *line)
 {
 	line->private = g_new0(CongEditorAreaLineDetails,1);
 }
diff --git a/src/cong-editor-area-pixbuf.c b/src/cong-editor-area-pixbuf.c
index 49dcd8c..260a081 100644
--- a/src/cong-editor-area-pixbuf.c
+++ b/src/cong-editor-area-pixbuf.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-pixbuf.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-eel-graphic-effects.h"
 
@@ -55,10 +54,9 @@ generate_pixbuf_for_state (GdkPixbuf *normal_pixbuf,
 
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaPixbuf, 
-			cong_editor_area_pixbuf,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaPixbuf,
+              cong_editor_area_pixbuf,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_pixbuf_class_init (CongEditorAreaPixbufClass *klass)
@@ -70,7 +68,7 @@ cong_editor_area_pixbuf_class_init (CongEditorAreaPixbufClass *klass)
 }
 
 static void
-cong_editor_area_pixbuf_instance_init (CongEditorAreaPixbuf *area_pixbuf)
+cong_editor_area_pixbuf_init (CongEditorAreaPixbuf *area_pixbuf)
 {
 	area_pixbuf->private = g_new0(CongEditorAreaPixbufDetails,1);
 }
diff --git a/src/cong-editor-area-spacer.c b/src/cong-editor-area-spacer.c
index f4ccf9d..9a0ab88 100644
--- a/src/cong-editor-area-spacer.c
+++ b/src/cong-editor-area-spacer.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-spacer.h"
-#include <libgnome/gnome-macros.h>
 
 #define PRIVATE(x) ((x)->private)
 
@@ -42,10 +41,9 @@ calc_requisition (CongEditorArea *area,
 		  int width_hint);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaSpacer, 
-			cong_editor_area_spacer,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaSpacer,
+              cong_editor_area_spacer,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_spacer_class_init (CongEditorAreaSpacerClass *klass)
@@ -56,7 +54,7 @@ cong_editor_area_spacer_class_init (CongEditorAreaSpacerClass *klass)
 }
 
 static void
-cong_editor_area_spacer_instance_init (CongEditorAreaSpacer *area_spacer)
+cong_editor_area_spacer_init (CongEditorAreaSpacer *area_spacer)
 {
 	area_spacer->private = g_new0(CongEditorAreaSpacerDetails,1);
 }
diff --git a/src/cong-editor-area-span-tag.c b/src/cong-editor-area-span-tag.c
index 31ff0b3..8f0da8b 100644
--- a/src/cong-editor-area-span-tag.c
+++ b/src/cong-editor-area-span-tag.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-span-tag.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-bin.h"
@@ -78,10 +77,9 @@ add_child (CongEditorAreaContainer *area_container,
 	   gboolean add_to_end);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaSpanTag, 
-			cong_editor_area_span_tag,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaSpanTag,
+              cong_editor_area_span_tag,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_span_tag_class_init (CongEditorAreaSpanTagClass *klass)
@@ -99,7 +97,7 @@ cong_editor_area_span_tag_class_init (CongEditorAreaSpanTagClass *klass)
 }
 
 static void
-cong_editor_area_span_tag_instance_init (CongEditorAreaSpanTag *area_span_tag)
+cong_editor_area_span_tag_init (CongEditorAreaSpanTag *area_span_tag)
 {
 	area_span_tag->private = g_new0(CongEditorAreaSpanTagDetails,1);
 }
diff --git a/src/cong-editor-area-structural-tag.c b/src/cong-editor-area-structural-tag.c
index f02648c..48ec252 100644
--- a/src/cong-editor-area-structural-tag.c
+++ b/src/cong-editor-area-structural-tag.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-structural-tag.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-text.h"
@@ -90,10 +89,9 @@ on_button_press (CongEditorArea *editor_area,
 
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaStructuralTag, 
-			cong_editor_area_structural_tag,
-			CongEditorAreaStructural,
-			CONG_EDITOR_AREA_STRUCTURAL_TYPE );
+G_DEFINE_TYPE(CongEditorAreaStructuralTag,
+              cong_editor_area_structural_tag,
+              CONG_EDITOR_AREA_STRUCTURAL_TYPE );
 
 static void
 cong_editor_area_structural_tag_class_init (CongEditorAreaStructuralTagClass *klass)
@@ -114,7 +112,7 @@ cong_editor_area_structural_tag_class_init (CongEditorAreaStructuralTagClass *kl
 }
 
 static void
-cong_editor_area_structural_tag_instance_init (CongEditorAreaStructuralTag *area_structural_tag)
+cong_editor_area_structural_tag_init (CongEditorAreaStructuralTag *area_structural_tag)
 {
 	area_structural_tag->private = g_new0(CongEditorAreaStructuralTagDetails,1);
 }
diff --git a/src/cong-editor-area-structural.c b/src/cong-editor-area-structural.c
index f087fa2..e477476 100644
--- a/src/cong-editor-area-structural.c
+++ b/src/cong-editor-area-structural.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-structural.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-text.h"
@@ -92,10 +91,9 @@ state_changed (CongEditorArea *area);
 
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaStructural, 
-			cong_editor_area_structural,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaStructural,
+              cong_editor_area_structural,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_structural_class_init (CongEditorAreaStructuralClass *klass)
@@ -113,7 +111,7 @@ cong_editor_area_structural_class_init (CongEditorAreaStructuralClass *klass)
 }
 
 static void
-cong_editor_area_structural_instance_init (CongEditorAreaStructural *area_structural)
+cong_editor_area_structural_init (CongEditorAreaStructural *area_structural)
 {
 	area_structural->private = g_new0(CongEditorAreaStructuralDetails,1);
 }
diff --git a/src/cong-editor-area-text-comment.c b/src/cong-editor-area-text-comment.c
index ad669c9..00af3d6 100644
--- a/src/cong-editor-area-text-comment.c
+++ b/src/cong-editor-area-text-comment.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-text-comment.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-font.h"
 #include "cong-eel.h"
 #include "cong-ui-hooks.h"
@@ -62,10 +61,9 @@ allocate_child_space (CongEditorArea *area);
 
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaTextComment, 
-			cong_editor_area_text_comment,
-			CongEditorAreaText,
-			CONG_EDITOR_AREA_TEXT_TYPE );
+G_DEFINE_TYPE(CongEditorAreaTextComment,
+              cong_editor_area_text_comment,
+              CONG_EDITOR_AREA_TEXT_TYPE );
 
 static void
 cong_editor_area_text_comment_class_init (CongEditorAreaTextCommentClass *klass)
@@ -80,7 +78,7 @@ cong_editor_area_text_comment_class_init (CongEditorAreaTextCommentClass *klass)
 }
 
 static void
-cong_editor_area_text_comment_instance_init (CongEditorAreaTextComment *area_text_comment)
+cong_editor_area_text_comment_init (CongEditorAreaTextComment *area_text_comment)
 {
 	area_text_comment->private = g_new0(CongEditorAreaTextCommentDetails,1);
 }
@@ -248,9 +246,7 @@ render_self (CongEditorArea *area,
 			    rect->height);
 
 	/* Call base class: */
-	CONG_EEL_CALL_PARENT(CONG_EDITOR_AREA_CLASS, 
-			     render_self, 
-			     (area, widget_rect));
+	CONG_EDITOR_AREA_CLASS(cong_editor_area_text_comment_parent_class)->render_self(area, widget_rect);
 }
 
 #if 0
diff --git a/src/cong-editor-area-text-fragment.c b/src/cong-editor-area-text-fragment.c
index 4dbed87..a12619e 100644
--- a/src/cong-editor-area-text-fragment.c
+++ b/src/cong-editor-area-text-fragment.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-text-fragment.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-font.h"
 #include "cong-document.h"
 
@@ -61,10 +60,9 @@ get_location_at_xy (CongEditorArea *editor_area,
 #endif
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaTextFragment, 
-			cong_editor_area_text_fragment,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaTextFragment,
+              cong_editor_area_text_fragment,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_text_fragment_class_init (CongEditorAreaTextFragmentClass *klass)
@@ -77,7 +75,7 @@ cong_editor_area_text_fragment_class_init (CongEditorAreaTextFragmentClass *klas
 }
 
 static void
-cong_editor_area_text_fragment_instance_init (CongEditorAreaTextFragment *area_text_fragment)
+cong_editor_area_text_fragment_init (CongEditorAreaTextFragment *area_text_fragment)
 {
 	area_text_fragment->private = g_new0(CongEditorAreaTextFragmentDetails,1);
 }
diff --git a/src/cong-editor-area-text.c b/src/cong-editor-area-text.c
index f1a8747..1b8c188 100644
--- a/src/cong-editor-area-text.c
+++ b/src/cong-editor-area-text.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-text.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-font.h"
 #include "cong-ui-hooks.h"
 
@@ -54,10 +53,9 @@ allocate_child_space (CongEditorArea *area);
 
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaText, 
-			cong_editor_area_text,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaText,
+              cong_editor_area_text,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_text_class_init (CongEditorAreaTextClass *klass)
@@ -70,7 +68,7 @@ cong_editor_area_text_class_init (CongEditorAreaTextClass *klass)
 }
 
 static void
-cong_editor_area_text_instance_init (CongEditorAreaText *area_text)
+cong_editor_area_text_init (CongEditorAreaText *area_text)
 {
 	area_text->private = g_new0(CongEditorAreaTextDetails,1);
 }
diff --git a/src/cong-editor-area-underline.c b/src/cong-editor-area-underline.c
index 033b074..ea4f9b7 100644
--- a/src/cong-editor-area-underline.c
+++ b/src/cong-editor-area-underline.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-underline.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-ui-hooks.h"
 
 
@@ -48,10 +47,9 @@ calc_requisition (CongEditorArea *area,
 		  int width_hint);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaUnderline, 
-			cong_editor_area_underline,
-			CongEditorArea,
-			CONG_EDITOR_AREA_TYPE );
+G_DEFINE_TYPE(CongEditorAreaUnderline,
+              cong_editor_area_underline,
+              CONG_EDITOR_AREA_TYPE );
 
 static void
 cong_editor_area_underline_class_init (CongEditorAreaUnderlineClass *klass)
@@ -63,7 +61,7 @@ cong_editor_area_underline_class_init (CongEditorAreaUnderlineClass *klass)
 }
 
 static void
-cong_editor_area_underline_instance_init (CongEditorAreaUnderline *area_underline)
+cong_editor_area_underline_init (CongEditorAreaUnderline *area_underline)
 {
 	area_underline->private = g_new0(CongEditorAreaUnderlineDetails,1);
 }
diff --git a/src/cong-editor-area-unknown-tag.c b/src/cong-editor-area-unknown-tag.c
index 8163df9..7a00547 100644
--- a/src/cong-editor-area-unknown-tag.c
+++ b/src/cong-editor-area-unknown-tag.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area-unknown-tag.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-app.h"
 #include "cong-editor-area-text.h"
@@ -111,10 +110,9 @@ on_expansion_changed (CongEditorAreaExpander *area_expander,
 		      gpointer user_data);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaUnknownTag, 
-			cong_editor_area_unknown_tag,
-			CongEditorAreaBin,
-			CONG_EDITOR_AREA_BIN_TYPE );
+G_DEFINE_TYPE(CongEditorAreaUnknownTag,
+              cong_editor_area_unknown_tag,
+              CONG_EDITOR_AREA_BIN_TYPE );
 
 static void
 cong_editor_area_unknown_tag_class_init (CongEditorAreaUnknownTagClass *klass)
@@ -134,7 +132,7 @@ cong_editor_area_unknown_tag_class_init (CongEditorAreaUnknownTagClass *klass)
 }
 
 static void
-cong_editor_area_unknown_tag_instance_init (CongEditorAreaUnknownTag *area_unknown_tag)
+cong_editor_area_unknown_tag_init (CongEditorAreaUnknownTag *area_unknown_tag)
 {
 	area_unknown_tag->private = g_new0(CongEditorAreaUnknownTagDetails,1);
 }
@@ -150,7 +148,7 @@ dispose (GObject *object)
 	g_signal_handler_disconnect (G_OBJECT(doc),
 				     PRIVATE(area_unknown_tag)->handler_id_remove_attribute);	
 
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS(cong_editor_area_unknown_tag_parent_class)->dispose(object);
 }
 
 static const gchar*
diff --git a/src/cong-editor-area.c b/src/cong-editor-area.c
index 1c3008b..34b58a6 100644
--- a/src/cong-editor-area.c
+++ b/src/cong-editor-area.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-area.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-marshal.h"
 #include "cong-editor-node.h"
@@ -120,10 +119,9 @@ CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_editor_area, allocate_child_space)
 #endif
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorArea, 
-			cong_editor_area,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongEditorArea,
+              cong_editor_area,
+              G_TYPE_OBJECT );
 
 static void
 cong_editor_area_class_init (CongEditorAreaClass *klass)
@@ -214,7 +212,7 @@ cong_editor_area_class_init (CongEditorAreaClass *klass)
 }
 
 static void
-cong_editor_area_instance_init (CongEditorArea *area)
+cong_editor_area_init (CongEditorArea *area)
 {
 	area->private = g_new0(CongEditorAreaDetails,1);
 }
@@ -1375,7 +1373,7 @@ finalize (GObject *object)
 	g_free (editor_area->private);
 	editor_area->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_editor_area_parent_class)->finalize (object);
 }
 
 static void
@@ -1402,5 +1400,5 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_editor_area_parent_class)->dispose (object);
 }
diff --git a/src/cong-editor-node-comment.c b/src/cong-editor-node-comment.c
index c3a8998..cf1065f 100644
--- a/src/cong-editor-node-comment.c
+++ b/src/cong-editor-node-comment.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-comment.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-text-cache.h"
 #include "cong-app.h"
diff --git a/src/cong-editor-node-document.c b/src/cong-editor-node-document.c
index 28b570b..29e453b 100644
--- a/src/cong-editor-node-document.c
+++ b/src/cong-editor-node-document.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-document.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-bin.h"
diff --git a/src/cong-editor-node-dtd.c b/src/cong-editor-node-dtd.c
index 52a5b3f..7ba3c6e 100644
--- a/src/cong-editor-node-dtd.c
+++ b/src/cong-editor-node-dtd.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-dtd.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-bin.h"
diff --git a/src/cong-editor-node-element-span.c b/src/cong-editor-node-element-span.c
index 8de85f8..03fee2c 100644
--- a/src/cong-editor-node-element-span.c
+++ b/src/cong-editor-node-element-span.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-element-span.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-span-tag.h"
@@ -56,10 +55,9 @@ generate_area (CongEditorNode *editor_node,
 #endif
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorNodeElementSpan, 
-			cong_editor_node_element_span,
-			CongEditorNodeElement,
-			CONG_EDITOR_NODE_ELEMENT_TYPE );
+G_DEFINE_TYPE(CongEditorNodeElementSpan,
+              cong_editor_node_element_span,
+              CONG_EDITOR_NODE_ELEMENT_TYPE );
 
 static void
 cong_editor_node_element_span_class_init (CongEditorNodeElementSpanClass *klass)
@@ -71,7 +69,7 @@ cong_editor_node_element_span_class_init (CongEditorNodeElementSpanClass *klass)
 }
 
 static void
-cong_editor_node_element_span_instance_init (CongEditorNodeElementSpan *node_element_span)
+cong_editor_node_element_span_init (CongEditorNodeElementSpan *node_element_span)
 {
 	node_element_span->private = g_new0(CongEditorNodeElementSpanDetails,1);
 }
diff --git a/src/cong-editor-node-element-structural.c b/src/cong-editor-node-element-structural.c
index 562002d..eb4d27f 100644
--- a/src/cong-editor-node-element-structural.c
+++ b/src/cong-editor-node-element-structural.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-element-structural.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-border.h"
diff --git a/src/cong-editor-node-element-unknown.c b/src/cong-editor-node-element-unknown.c
index 845e75a..a42873b 100644
--- a/src/cong-editor-node-element-unknown.c
+++ b/src/cong-editor-node-element-unknown.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-element-unknown.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-unknown-tag.h"
diff --git a/src/cong-editor-node-element.c b/src/cong-editor-node-element.c
index a8e2f17..8d68ca3 100644
--- a/src/cong-editor-node-element.c
+++ b/src/cong-editor-node-element.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-element.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-document.h"
 
@@ -37,10 +36,9 @@ struct _CongEditorNodeElementDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorNodeElement, 
-			cong_editor_node_element,
-			CongEditorNode,
-			CONG_EDITOR_NODE_TYPE );
+G_DEFINE_TYPE(CongEditorNodeElement,
+              cong_editor_node_element,
+              CONG_EDITOR_NODE_TYPE );
 
 static void
 cong_editor_node_element_class_init (CongEditorNodeElementClass *klass)
@@ -48,7 +46,7 @@ cong_editor_node_element_class_init (CongEditorNodeElementClass *klass)
 }
 
 static void
-cong_editor_node_element_instance_init (CongEditorNodeElement *node_element)
+cong_editor_node_element_init (CongEditorNodeElement *node_element)
 {
 	node_element->private = g_new0(CongEditorNodeElementDetails,1);
 }
diff --git a/src/cong-editor-node-entity-decl.c b/src/cong-editor-node-entity-decl.c
index 496331d..1f9cc48 100644
--- a/src/cong-editor-node-entity-decl.c
+++ b/src/cong-editor-node-entity-decl.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-entity-decl.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-entity-decl.h"
@@ -41,10 +40,9 @@ struct _CongEditorNodeEntityDeclDetails
 CONG_EDITOR_NODE_DECLARE_HOOKS(entity_decl)
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorNodeEntityDecl, 
-			cong_editor_node_entity_decl,
-			CongEditorNode,
-			CONG_EDITOR_NODE_TYPE );
+G_DEFINE_TYPE(CongEditorNodeEntityDecl,
+              cong_editor_node_entity_decl,
+              CONG_EDITOR_NODE_TYPE );
 
 static void
 cong_editor_node_entity_decl_class_init (CongEditorNodeEntityDeclClass *klass)
@@ -53,7 +51,7 @@ cong_editor_node_entity_decl_class_init (CongEditorNodeEntityDeclClass *klass)
 }
 
 static void
-cong_editor_node_entity_decl_instance_init (CongEditorNodeEntityDecl *node_entity_decl)
+cong_editor_node_entity_decl_init (CongEditorNodeEntityDecl *node_entity_decl)
 {
 	node_entity_decl->private = g_new0(CongEditorNodeEntityDeclDetails,1);
 }
diff --git a/src/cong-editor-node-entity-ref.c b/src/cong-editor-node-entity-ref.c
index 8589d2d..55462e4 100644
--- a/src/cong-editor-node-entity-ref.c
+++ b/src/cong-editor-node-entity-ref.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-entity-ref.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-editor-area-entity-ref.h"
@@ -41,10 +40,9 @@ struct _CongEditorNodeEntityRefDetails
 CONG_EDITOR_NODE_DECLARE_HOOKS(entity_ref)
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorNodeEntityRef, 
-			cong_editor_node_entity_ref,
-			CongEditorNode,
-			CONG_EDITOR_NODE_TYPE );
+G_DEFINE_TYPE(CongEditorNodeEntityRef,
+              cong_editor_node_entity_ref,
+              CONG_EDITOR_NODE_TYPE );
 
 static void
 cong_editor_node_entity_ref_class_init (CongEditorNodeEntityRefClass *klass)
@@ -53,7 +51,7 @@ cong_editor_node_entity_ref_class_init (CongEditorNodeEntityRefClass *klass)
 }
 
 static void
-cong_editor_node_entity_ref_instance_init (CongEditorNodeEntityRef *node_entity_ref)
+cong_editor_node_entity_ref_init (CongEditorNodeEntityRef *node_entity_ref)
 {
 	node_entity_ref->private = g_new0(CongEditorNodeEntityRefDetails,1);
 }
diff --git a/src/cong-editor-node-text.c b/src/cong-editor-node-text.c
index c7620a0..c308079 100644
--- a/src/cong-editor-node-text.c
+++ b/src/cong-editor-node-text.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-text.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-app.h"
diff --git a/src/cong-editor-node-unimplemented.c b/src/cong-editor-node-unimplemented.c
index 5cecc90..e306aef 100644
--- a/src/cong-editor-node-unimplemented.c
+++ b/src/cong-editor-node-unimplemented.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node-unimplemented.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-app.h"
@@ -41,10 +40,9 @@ struct _CongEditorNodeUnimplementedDetails
 CONG_EDITOR_NODE_DECLARE_HOOKS(unimplemented)
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongEditorNodeUnimplemented, 
-			cong_editor_node_unimplemented,
-			CongEditorNode,
-			CONG_EDITOR_NODE_TYPE );
+G_DEFINE_TYPE(CongEditorNodeUnimplemented,
+              cong_editor_node_unimplemented,
+              CONG_EDITOR_NODE_TYPE );
 
 static void
 cong_editor_node_unimplemented_class_init (CongEditorNodeUnimplementedClass *klass)
@@ -53,7 +51,7 @@ cong_editor_node_unimplemented_class_init (CongEditorNodeUnimplementedClass *kla
 }
 
 static void
-cong_editor_node_unimplemented_instance_init (CongEditorNodeUnimplemented *node_unimplemented)
+cong_editor_node_unimplemented_init (CongEditorNodeUnimplemented *node_unimplemented)
 {
 	node_unimplemented->private = g_new0(CongEditorNodeUnimplementedDetails,1);
 }
diff --git a/src/cong-editor-node.c b/src/cong-editor-node.c
index f2f2316..66b5c56 100644
--- a/src/cong-editor-node.c
+++ b/src/cong-editor-node.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-editor-node.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-app.h"
diff --git a/src/cong-editor-widget3.c b/src/cong-editor-widget3.c
index 1a1016b..cd1e173 100644
--- a/src/cong-editor-widget3.c
+++ b/src/cong-editor-widget3.c
@@ -31,6 +31,7 @@
 #include "cong-util.h"
 
 #include <gtk/gtkdrawingarea.h>
+#include <gdk/gdkkeysyms.h>
 
 /* Test code: */
 #include "cong-editor-area-border.h"
@@ -243,10 +244,9 @@ on_root_requisition_change (CongEditorArea *child_area,
 			    gpointer user_data);
 
 /* Implementations of public functions: */
-GNOME_CLASS_BOILERPLATE(CongEditorWidget3, 
-			cong_editor_widget3,
-			GtkDrawingArea,
-			GTK_TYPE_DRAWING_AREA );
+G_DEFINE_TYPE(CongEditorWidget3,
+              cong_editor_widget3,
+              GTK_TYPE_DRAWING_AREA );
 
 static void
 cong_editor_widget3_class_init (CongEditorWidget3Class *klass)
@@ -275,7 +275,7 @@ cong_editor_widget3_class_init (CongEditorWidget3Class *klass)
 }
 
 static void
-cong_editor_widget3_instance_init (CongEditorWidget3 *widget)
+cong_editor_widget3_init (CongEditorWidget3 *widget)
 {
 	widget->private = g_new0(CongEditorWidget3Details,1);
 }
@@ -831,7 +831,7 @@ cong_editor_widget3_finalize (GObject *object)
 	g_free (editor_widget->private);
 	editor_widget->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_editor_widget3_parent_class)->finalize (object);
 }
 
 static void
@@ -864,7 +864,7 @@ cong_editor_widget3_dispose (GObject *object)
 #endif
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_editor_widget3_parent_class)->dispose (object);
 }
 
 static void
@@ -984,7 +984,7 @@ static void   realize  (GtkWidget        *widget)
 	gtk_im_context_set_client_window (PRIVATE(editor_widget)->im_context, widget->window);
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (GTK_WIDGET_CLASS, realize, (widget));
+	GTK_WIDGET_CLASS (cong_editor_widget3_parent_class)->realize (widget);
 }
 
 static void   unrealize (GtkWidget        *widget)
@@ -994,7 +994,7 @@ static void   unrealize (GtkWidget        *widget)
 	gtk_im_context_set_client_window (PRIVATE(editor_widget)->im_context, NULL);  
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (GTK_WIDGET_CLASS, unrealize, (widget));
+	GTK_WIDGET_CLASS (cong_editor_widget3_parent_class)->unrealize (widget);
 }
 
 static gboolean expose_event_handler(GtkWidget *w, GdkEventExpose *event, gpointer user_data)
diff --git a/src/cong-error-file-open.c b/src/cong-error-file-open.c
index 5b31892..dbb1847 100644
--- a/src/cong-error-file-open.c
+++ b/src/cong-error-file-open.c
@@ -13,7 +13,6 @@
 #include <gtk/gtk.h>
 
 #include "global.h"
-#include <libgnome/libgnome.h>
 #include "cong-error-dialog.h"
 #include "cong-util.h"
 
@@ -53,20 +52,20 @@ cong_error_get_appname(void)
 
 static void on_search(gpointer data)
 {
-	char* argv[1];
-	int process_id;
+	GError *error = NULL;
+	gboolean result;
 
 	g_message("on_search\n");
 
 	/* Launch the GNOME Search Tool: */
-	argv[0] = "gnome-search-tool";
-	process_id = gnome_execute_async(NULL,1,argv);
+	result = g_spawn_command_line_async("gnome-search-tool", &error);
 
-	if (-1==process_id) {
+	if (!result) {
 		cong_error_dialog_do( cong_error_dialog_new(NULL, /* FIXME: ought to set up the parent window properly */
 							    _("Conglomerate could not run the Search Tool.\n"),
-							    "FIXME",
+							    error->message,
 							    "FIXME") );
+		g_error_free(error);
 	}
 }
 
diff --git a/src/cong-file-new.c b/src/cong-file-new.c
index 501fdf0..a8b9d6d 100644
--- a/src/cong-file-new.c
+++ b/src/cong-file-new.c
@@ -55,12 +55,11 @@ enum
 
 struct CongNewFileAssistant
 {
-	GtkWidget *window;
-	GnomeDruid *druid;
+	GtkAssistant *druid;
 	GtkWidget *first_page;
 	GtkWidget *second_page;
 	GtkWidget *final_page;
-	GnomeDruidPage *previous_page;
+	GtkWidget *previous_page;
 	GtkWidget *type_selection_widget;
 	GdkPixbuf *logo;
 	GdkPixbuf *watermark;
@@ -71,10 +70,15 @@ struct CongNewFileAssistant
 
 	/* Mapping from factories to pages; the "first" page for each factory, actually the third page within the druid */
 	GHashTable *hash_table_of_factory_to_page;
+	/* Also the "last" page for each factory */
+	GHashTable *hash_table_of_factory_to_last_page;
 	GHashTable *hash_table_of_factory_to_data;
 };
 
 static void
+on_type_selection_changed(GtkTreeSelection *tree_selection, CongNewFileAssistant *assistant);
+
+static void
 set_pixbuf (GtkTreeViewColumn *tree_column,
 	    GtkCellRenderer   *cell,
 	    GtkTreeModel      *model,
@@ -100,48 +104,69 @@ set_pixbuf (GtkTreeViewColumn *tree_column,
 	}
 }
 
-/**
- * first_page_of_factory_back:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- * Returns:
- */
-gboolean 
-first_page_of_factory_back(GnomeDruidPage *druidpage,
-			   GtkWidget *widget,
-			   gpointer user_data)
+static void
+format_page(CongNewFileAssistant *assistant, GtkWidget *page)
 {
-	CongNewFileAssistant *assistant = user_data;
-
-	gnome_druid_set_page(GNOME_DRUID(assistant->druid), GNOME_DRUID_PAGE(assistant->second_page));
-
-	return TRUE;
+	gtk_assistant_set_page_header_image(assistant->druid, page, assistant->top_watermark);
+	gtk_assistant_set_page_side_image(assistant->druid, page, assistant->logo);
+	gtk_widget_show(page);
 }
 
-/**
- * last_page_of_factory_next:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- * Returns:
- */
-gboolean 
-last_page_of_factory_next(GnomeDruidPage *druidpage,
-			  GtkWidget *widget,
-			  gpointer user_data)
+static GtkWidget *
+add_new_page(CongNewFileAssistant *assistant, const char *text, GtkAssistantPageType type)
 {
-	CongNewFileAssistant *assistant = user_data;
+	GtkWidget *page = gtk_label_new(text);
+	gtk_label_set_line_wrap(GTK_LABEL(page), TRUE);
+	gtk_assistant_append_page(assistant->druid, page);
+	gtk_assistant_set_page_type(assistant->druid, page, type);
+	gtk_assistant_set_page_title(assistant->druid, page, _("Creating a new file"));
+	format_page(assistant, page);
+	return page;
+}
 
-	/* Store page, so that the final page's back button takes us back here: */
-	assistant->previous_page = druidpage;
-	gnome_druid_set_page(GNOME_DRUID(assistant->druid), GNOME_DRUID_PAGE(assistant->final_page));
+/* Build the page to look more or less like GnomeDruid would have done it */
+static GtkWidget *
+add_new_page_with_widget(CongNewFileAssistant *assistant,
+                         const char *title,
+                         const char *question,
+                         const char *info,
+                         GtkWidget *widget)
+{
+	GtkWidget *page, *top_label, *bottom_label;
+	char *text;
+
+	page = gtk_vbox_new(FALSE, 0);
+	if(question) {
+		top_label = gtk_label_new(question);
+		g_object_set(top_label,
+			     "use-markup", TRUE,
+			     "use-underline", TRUE,
+			     "mnemonic-widget", widget,
+			     "justify", GTK_JUSTIFY_LEFT,
+			     "xalign", 0.0,
+			     NULL);
+		gtk_box_pack_start(GTK_BOX(page), top_label, FALSE, FALSE, 0);
+	}
+	gtk_box_pack_start(GTK_BOX(page), widget, FALSE, FALSE, 0);
+	if(info) {
+		text = g_strconcat("<span size=\"small\">", info, "</span>", NULL);
+		bottom_label = gtk_label_new(text);
+		g_free(text);
+		g_object_set(bottom_label,
+			     "use-markup", TRUE,
+			     "justify", GTK_JUSTIFY_LEFT,
+			     "xalign", 0.0,
+			     "xpad", 24,
+			     NULL);
+		gtk_box_pack_start(GTK_BOX(page), bottom_label, FALSE, FALSE, 0);
+	}
 
-	return TRUE;
+	gtk_assistant_append_page(assistant->druid, page);
+	gtk_assistant_set_page_type(assistant->druid, page, GTK_ASSISTANT_PAGE_CONTENT);
+	gtk_assistant_set_page_title(assistant->druid, page, title);
+	gtk_assistant_set_page_complete(assistant->druid, page, TRUE);
+	format_page(assistant, page);
+	return page;
 }
 
 /**
@@ -154,13 +179,16 @@ last_page_of_factory_next(GnomeDruidPage *druidpage,
  * TODO: Write me
  * Returns:
  */
-GnomeDruidPageStandard *
+GtkWidget *
 cong_new_file_assistant_new_page(CongNewFileAssistant *assistant, 
 				 CongServiceDocumentFactory *document_factory, 
+                                 GtkWidget *content,
+                                 const char *question,
+                                 const char *info,
 				 gboolean is_first_of_factory,
 				 gboolean is_last_of_factory)
 {
-	GnomeDruidPageStandard *page;
+	GtkWidget *page;
 	gchar *title;
 
 	g_return_val_if_fail(assistant, NULL);
@@ -168,27 +196,16 @@ cong_new_file_assistant_new_page(CongNewFileAssistant *assistant,
 
 	title = g_strdup_printf(_("Creating a new file (%s)"), 
 				cong_service_get_name(CONG_SERVICE(document_factory)));
-
-	page = GNOME_DRUID_PAGE_STANDARD(gnome_druid_page_standard_new_with_vals(title,
-										 assistant->logo,
-										 assistant->top_watermark));
-
+	page = add_new_page_with_widget(assistant, title, question, info, content);
 	g_free(title);
 
-	gnome_druid_append_page(assistant->druid, GNOME_DRUID_PAGE(page));
-	gtk_widget_show(GTK_WIDGET(page));
-
 	if (is_first_of_factory) {
 		/* add to mapping from factories to pages: */
 		g_hash_table_insert(assistant->hash_table_of_factory_to_page, document_factory, page);
-
-		/* "Back" should take us to the druid's second page: */
-		g_signal_connect(GTK_OBJECT(page), "back", G_CALLBACK(first_page_of_factory_back), assistant);
 	}
 
 	if (is_last_of_factory) {
-		/* "Forward" should take us to the druid's final page: */
-		g_signal_connect(GTK_OBJECT(page), "next", G_CALLBACK(last_page_of_factory_next), assistant);
+		g_hash_table_insert(assistant->hash_table_of_factory_to_last_page, document_factory, page);
 	}
 
 	return page;
@@ -202,14 +219,18 @@ cong_new_file_assistant_new_page(CongNewFileAssistant *assistant,
  * TODO: Write me
  */
 void 
-cong_new_file_assistant_set_page(CongNewFileAssistant *assistant, GnomeDruidPage *page)
+cong_new_file_assistant_set_page(CongNewFileAssistant *assistant, GtkWidget *page)
 {
 	g_return_if_fail(assistant);
 	g_return_if_fail(page);
 
-
-	gnome_druid_set_page(GNOME_DRUID(assistant->druid), page);
-	
+	int count;
+	for(count = gtk_assistant_get_n_pages(assistant->druid); count >= 0; count--) {
+		if(gtk_assistant_get_nth_page(assistant->druid, count) == page) {
+			gtk_assistant_set_current_page(assistant->druid, count);
+			break;
+		}
+	}
 }
 
 /**
@@ -224,7 +245,7 @@ cong_new_file_assistant_get_toplevel(CongNewFileAssistant *assistant)
 {
 	g_return_val_if_fail (assistant, NULL);
 
-	return GTK_WINDOW(assistant->window);
+	return GTK_WINDOW(assistant->druid);
 }
 
 /**
@@ -322,6 +343,7 @@ make_type_selection_widget(CongNewFileAssistant *assistant)
 #endif
 	GtkTreeViewColumn *column;
 	GtkCellRenderer *renderer;
+	GtkTreeSelection *selection;
 
 	assistant->list_store = gtk_list_store_new (NEWDOCTYPELIST_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
 
@@ -369,6 +391,10 @@ make_type_selection_widget(CongNewFileAssistant *assistant)
 
 	gtk_widget_show(assistant->list_view);
 
+	/* Listen for a selection */
+	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(assistant->list_view));
+	g_signal_connect(selection, "changed", G_CALLBACK(on_type_selection_changed), assistant);
+
 #if 1
 	return assistant->list_view;
 #else
@@ -379,64 +405,29 @@ make_type_selection_widget(CongNewFileAssistant *assistant)
 #endif
 }
 
-/**
- * second_page_prepare:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- */
-void 
-second_page_prepare(GnomeDruidPage *druidpage,
-		    GtkWidget *widget,
-		    gpointer user_data)
-{
-	CongNewFileAssistant *assistant = user_data;
-
-#if DEBUG_FILE_NEW_ASSISTANT
-	g_message("second_page_prepare");
-#endif
-
-	gnome_druid_set_buttons_sensitive(GNOME_DRUID(assistant->druid),
-					  TRUE, /* gboolean back_sensitive, */
-					  FALSE, /* gboolean next_sensitive, */
-					  TRUE, /* gboolean cancel_sensitive, */
-					  TRUE); /* gboolean help_sensitive */
-
-}
-
-/**
- * second_page_next:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- * Returns:
- */
-gboolean 
-second_page_next(GnomeDruidPage *druidpage,
-		 GtkWidget *widget,
-		 gpointer user_data)
+static void
+on_type_selection_changed(GtkTreeSelection *tree_selection, CongNewFileAssistant *assistant)
 {
-	CongNewFileAssistant *assistant = user_data;
-	GtkTreeSelection* tree_selection;
 	GtkTreeModel *tree_model;
 	GtkTreeIter iter;
+	int n_pages, count;
 
 #if DEBUG_FILE_NEW_ASSISTANT
-	g_message("second_page_next");
+	g_message("on_type_selection_changed");
 #endif
+	/* Hide all factory pages (all except 0, 1 and last) */
+	n_pages = gtk_assistant_get_n_pages(assistant->druid);
+	for(count = 2; count < n_pages - 1; count++) {
+		GtkWidget *page = gtk_assistant_get_nth_page(assistant->druid, count);
+		gtk_widget_hide_all(page);
+	}
 
 	/* Get selected factory */
-	tree_selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(assistant->list_view));
-
 	if (gtk_tree_selection_get_selected (tree_selection,
                                              &tree_model,
                                              &iter) ) {
 		CongServiceDocumentFactory *factory;		
-		GnomeDruidPage *appropriate_third_page;
+		GtkWidget *appropriate_third_page, *factory_last_page;
 
 		gtk_tree_model_get(tree_model,
 				   &iter,
@@ -447,18 +438,31 @@ second_page_next(GnomeDruidPage *druidpage,
 		/* Find the relevant page for this factory within the druid: */
 		appropriate_third_page = g_hash_table_lookup(assistant->hash_table_of_factory_to_page,
 							     factory);
+		factory_last_page = g_hash_table_lookup(assistant->hash_table_of_factory_to_last_page,
+		                                        factory);
 
 		if (appropriate_third_page) {
-			cong_new_file_assistant_set_page(assistant, GNOME_DRUID_PAGE(appropriate_third_page));
+			if (appropriate_third_page == factory_last_page) {
+				gtk_widget_show_all(appropriate_third_page);
+			} else {
+				gboolean show_page = FALSE;
+				for(count = 2; count < n_pages - 1; count++) {
+					GtkWidget *page = gtk_assistant_get_nth_page(assistant->druid, count);
+					if(page == appropriate_third_page)
+						show_page = TRUE;
+					if(show_page)
+						gtk_widget_show_all(page);
+					if(page == factory_last_page)
+						show_page = FALSE;
+				}
+			}
 		} else {
 			/* what to do in this case? */
 #if DEBUG_FILE_NEW_ASSISTANT
 			g_message("haven't got a third page registered for factory \"%s\"", 
 				  cong_service_get_name(CONG_SERVICE(factory)));
 #endif
-			/* go to final page: */
-			assistant->previous_page = druidpage;
-			gnome_druid_set_page(GNOME_DRUID(assistant->druid), GNOME_DRUID_PAGE(assistant->final_page));
+			/* go to final page, by keeping all the in-between pages hidden */
 		}
 
 #if 0
@@ -466,59 +470,24 @@ second_page_next(GnomeDruidPage *druidpage,
 		cong_document_factory_invoke_action_callback(factory, assistant);
 #endif
 
-
-		/* Don't advance to the next page; this should have been done already */
-		return TRUE;
+		/* Allow advancing to the next page */
+		gtk_assistant_set_page_complete(assistant->druid, assistant->second_page, TRUE);
 	} else {
 		/* Nothing selected; don't advance to the next page */
-		return TRUE;
+		gtk_assistant_set_page_complete(assistant->druid, assistant->second_page, FALSE);
 	}
 
 }
 
-/**
- * final_page_back:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- * Returns:
- */
-gboolean 
-final_page_back(GnomeDruidPage *druidpage,
-		GtkWidget *widget,
-		gpointer user_data)
-{
-	CongNewFileAssistant *assistant = user_data;
-
-	/* go back to the stored previous page: */
-	gnome_druid_set_page(GNOME_DRUID(assistant->druid), GNOME_DRUID_PAGE(assistant->previous_page));
-
-	return TRUE;
-}
-
-/**
- * final_page_finish:
- * @druidpage:
- * @widget:
- * @user_data:
- *
- * TODO: Write me
- * Returns:
- */
-gboolean 
-final_page_finish(GnomeDruidPage *druidpage,
-		  GtkWidget *widget,
-		  gpointer user_data)
+static void
+on_apply(GtkAssistant *widget, CongNewFileAssistant *assistant)
 {
-	CongNewFileAssistant *assistant = user_data;
 	GtkTreeSelection* tree_selection;
 	GtkTreeModel *tree_model;
 	GtkTreeIter iter;
 
 #if DEBUG_FILE_NEW_ASSISTANT
-	g_message("final_page_finish");
+	g_message("on_apply");
 #endif
 
 	/* Get selected factory */
@@ -537,17 +506,11 @@ final_page_finish(GnomeDruidPage *druidpage,
 
 		/* Invoke the factory: */
 		cong_document_factory_invoke_action_callback(factory, assistant);
-
-		/* Close the assistant: */
-		gtk_widget_destroy(assistant->window);
-
-		/* FIXME: this leaks memory */
-
 	} else {
 		g_warning("No selected factory");
 	}
 
-	return TRUE;
+	/* The assistant closes automatically */
 }
 
 static void
@@ -585,83 +548,67 @@ new_document(GtkWindow *parent_window)
 
 	/* FIXME:  what if no document factories found? */
 
-	/* We don't use gnome_druid_new_with_window since this shows the window, and we've got lots of construction work to do before that should happen: */
-	assistant->druid = GNOME_DRUID (gnome_druid_new ());
+	assistant->druid = GTK_ASSISTANT(gtk_assistant_new());
 	gtk_widget_show (GTK_WIDGET (assistant->druid));
+	g_printerr("Number of pages: %d\n", gtk_assistant_get_n_pages(assistant->druid));
 
-	assistant->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-	gtk_window_set_title (GTK_WINDOW (assistant->window), 
+	gtk_window_set_title (GTK_WINDOW (assistant->druid),
 			      _("Creating a new file"));
 
 	if (parent_window != NULL) {
-		gtk_window_set_transient_for (GTK_WINDOW (assistant->window),
+		gtk_window_set_transient_for (GTK_WINDOW (assistant->druid),
 					      parent_window);
 	}	
 	
-	gtk_container_add (GTK_CONTAINER (assistant->window), 
-			   GTK_WIDGET (assistant->druid));
-	
 	g_signal_connect_object (assistant->druid, "cancel",
 				 G_CALLBACK (gtk_widget_destroy),
-				 assistant->window,
+				 assistant->druid,
 				 G_CONNECT_SWAPPED);
-	
-	/* When the druid gets destroyed so does the window */
-	g_signal_connect_object (assistant->druid, "destroy",
-				 G_CALLBACK (gtk_widget_destroy),
-				 assistant->window,
-				 G_CONNECT_SWAPPED);
-
-	assistant->first_page = gnome_druid_page_edge_new_with_vals(GNOME_EDGE_START,
-								   TRUE,
-								   _("Creating a new file"),
-								   _("This assistant will guide you through creating a new file.\n\nVarious types of file are available, and Conglomerate may be able to supply some of the \"boilerplate\" content for you.\n\nWe hope that in future versions of Conglomerate you will be able to create \"template documents\" to add to this system."),
-								   assistant->logo,
-								   assistant->watermark,
-								   assistant->top_watermark);
-	gnome_druid_append_page(assistant->druid, GNOME_DRUID_PAGE(assistant->first_page));
-	gtk_widget_show(GTK_WIDGET(assistant->first_page));
-
-	assistant->second_page = gnome_druid_page_standard_new_with_vals(_("Creating a new file"),
-							      assistant->logo,
-							      assistant->top_watermark);
+	g_signal_connect (assistant->druid, "apply",
+                     G_CALLBACK (on_apply),
+                     assistant);
+	g_signal_connect (assistant->druid, "close",
+                     G_CALLBACK (gtk_widget_destroy),
+                     NULL);
+
+	assistant->first_page = add_new_page(assistant, _("This assistant will "
+		"guide you through creating a new file.\n\n"
+		"Various types of file are available, and Conglomerate may be "
+		"able to supply some of the \"boilerplate\" content for you.\n\n"
+		"We hope that in future versions of Conglomerate you will be "
+		"able to create \"template documents\" to add to this system."),
+	                                     GTK_ASSISTANT_PAGE_INTRO);
+	gtk_assistant_set_page_complete(assistant->druid, assistant->first_page, TRUE);
 
 	assistant->type_selection_widget = make_type_selection_widget(assistant);
-	gnome_druid_page_standard_append_item(GNOME_DRUID_PAGE_STANDARD(assistant->second_page),
-					      _("What type of file would you like to create?"),
-					      assistant->type_selection_widget,
-					      _("Highlight one of the items in the list and select \"Forward\" to continue"));
-	gnome_druid_append_page(assistant->druid, GNOME_DRUID_PAGE(assistant->second_page));
-	gtk_widget_show(GTK_WIDGET(assistant->second_page));
-
-	g_signal_connect(GTK_OBJECT(assistant->second_page), "prepare", G_CALLBACK(second_page_prepare), assistant);
-	g_signal_connect(GTK_OBJECT(assistant->second_page), "next", G_CALLBACK(second_page_next), assistant);
-
-	assistant->final_page = gnome_druid_page_edge_new_with_vals(GNOME_EDGE_FINISH,
-								    TRUE,
-								    _("Creating a new file"),
-								    _("Conglomerate now has the information it needs to create the document.  Press \"Apply\" to create it.  You will need to save the document if you wish to keep it."),
-								    assistant->logo,
-								    assistant->watermark,
-								    assistant->top_watermark);
-	gnome_druid_append_page(assistant->druid, GNOME_DRUID_PAGE(assistant->final_page));
-	gtk_widget_show(GTK_WIDGET(assistant->final_page));
-	g_signal_connect(GTK_OBJECT(assistant->final_page), "back", G_CALLBACK(final_page_back), assistant);
-	g_signal_connect(GTK_OBJECT(assistant->final_page), "finish", G_CALLBACK(final_page_finish), assistant);
+	assistant->second_page = add_new_page_with_widget(assistant,
+	                                                  _("Creating a new file"),
+	                                                  _("What type of file would you like to create?"),
+	                                                  _("Highlight one of the items in the list and select \"Forward\" to continue"),
+	                                                  assistant->type_selection_widget);
+	gtk_widget_show_all(assistant->second_page);
 
 	/* 
 	   There doesn't seem to be a way to delete pages from a druid.  Hence we have to create the GUI for all of the factories
 	   at the creation of the druid, rather than "on-demand".
+	   FIXME: With GtkAssistant, gtk_container_remove() should work.
 	 */
 	assistant->hash_table_of_factory_to_page = g_hash_table_new(g_direct_hash, g_direct_equal);
+	assistant->hash_table_of_factory_to_last_page = g_hash_table_new(g_direct_hash, g_direct_equal);
 	assistant->hash_table_of_factory_to_data = g_hash_table_new (g_direct_hash, 
 								     g_direct_equal);
 	cong_plugin_manager_for_each_document_factory (cong_app_get_plugin_manager (cong_app_singleton()), 
 						       add_pages_for_factory_callback, 
 						       assistant);
 
-	gtk_widget_show(GTK_WIDGET(assistant->window));
+	assistant->final_page = add_new_page(assistant, _("Conglomerate now has the "
+		"information it needs to create the document.  Press \"Apply\" "
+		"to create it.  You will need to save the document if you wish "
+		"to keep it."), GTK_ASSISTANT_PAGE_CONFIRM);
+	gtk_assistant_set_page_complete(assistant->druid, assistant->final_page, TRUE);
+
+	gtk_assistant_set_current_page(assistant->druid, 0);
+	gtk_widget_show(GTK_WIDGET(assistant->druid));
 
 #if 0
 	CONG_DO_UNIMPLEMENTED_DIALOG("The selected menu item has not yet been implemented.");
diff --git a/src/cong-glade.c b/src/cong-glade.c
index d748366..e96b725 100644
--- a/src/cong-glade.c
+++ b/src/cong-glade.c
@@ -69,11 +69,8 @@ cong_util_load_glade_file (const gchar *filename,
 		g_return_val_if_fail (IS_CONG_DOCUMENT (doc), NULL);
 	}
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    filename,
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       filename);
 	global_glade_doc_ptr = doc;
 	global_glade_node_ptr = node;
 	
diff --git a/src/cong-language.c b/src/cong-language.c
index 6782efe..4c4e321 100644
--- a/src/cong-language.c
+++ b/src/cong-language.c
@@ -55,16 +55,14 @@ cong_per_language_data_free (CongPerLanguageData *per_language)
 gpointer
 cong_per_language_get_data (CongPerLanguageData *per_language)
 {
-	const GList *lang_iter;
+	const char * const *lang;
 	gpointer result;
 
 	g_return_val_if_fail (per_language, NULL);
 
-	for (lang_iter = cong_app_get_language_list (cong_app_singleton ()); lang_iter; lang_iter=lang_iter->next) {
-		const gchar *lang = (const gchar*)lang_iter->data;
-		
- 		result = g_hash_table_lookup (per_language->hash_table,
-					      lang);
+	for (lang = g_get_language_names(); *lang; lang++) {
+		result = g_hash_table_lookup (per_language->hash_table,
+					      *lang);
 		if (result) {
 			return result;
 		}
diff --git a/src/cong-menus.c b/src/cong-menus.c
index 159d7ba..3a77932 100644
--- a/src/cong-menus.c
+++ b/src/cong-menus.c
@@ -43,8 +43,6 @@
 #include "cong-ui-hooks.h"
 
 #if 1
-#include <libgnome/libgnome.h>
-#include <libgnomeui/libgnomeui.h>
 #include <libgnomevfs/gnome-vfs.h>
 #include <libgnomevfs/gnome-vfs-mime-handlers.h>
 #endif
@@ -1217,11 +1215,8 @@ static void
 action_callback_debug_glade_test (GtkAction *action,
 				  CongPrimaryWindow *primary_window)
 {
-	gchar* glade_filename = gnome_program_locate_file(cong_app_get_gnome_program (cong_app_singleton()),
-							  GNOME_FILE_DOMAIN_APP_DATADIR,
-							  "conglomerate/glade/test.glade",
-							  FALSE,
-							  NULL);
+	gchar* glade_filename = cong_app_locate_file(cong_app_singleton(),
+						     "conglomerate/glade/test.glade");
 
 	GladeXML *xml = glade_xml_new(glade_filename, NULL, NULL);
 	glade_xml_signal_autoconnect(xml);
@@ -1404,7 +1399,14 @@ static void
 action_callback_homepage (GtkAction *action,
 			  CongPrimaryWindow *primary_window)
 {
-   gnome_url_show ("http://www.conglomerate.org";, NULL);
+	GError *error = NULL;
+	if(!gtk_show_uri(NULL, "http://www.conglomerate.org";, GDK_CURRENT_TIME, &error)) {
+		cong_error_dialog_new(cong_primary_window_get_toplevel(primary_window),
+		                      _("You were supposed to see the Conglomerate website in your browser, but it didn't open."),
+		                      error->message,
+		                      _("Make sure you have a web browser installed and it is registered as the default web browser."));
+		g_error_free(error);
+	}
 }				   
 
 static void 
@@ -1426,37 +1428,17 @@ action_callback_about (GtkAction *action,
 
  	gchar* translator_credits = _("translator_credits");
 
-        gchar *logo_path;
-
-	GdkPixbuf *logo_pixbuf;
-  
- 	GtkWidget *about;
-	
-	logo_path = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-					       GNOME_FILE_DOMAIN_APP_PIXMAP,
-					       "conglomerate/conglomerate-logo.png",
-					       FALSE,
-					       NULL);
-	logo_pixbuf = gdk_pixbuf_new_from_file(logo_path, NULL);
-	
-	g_free(logo_path);
-	
-	about  = gnome_about_new(_("Conglomerate XML Editor"),
- 					   PACKAGE_VERSION,
- 					   _("(C) 1999 Hans Petter Jansson\n(C) 2004 David Malcolm"),
- 					   _("Conglomerate: a free, user-friendly XML editor"),
- 					   (const char **)authors,
- 					   (const char **)documenters,
- 					   strcmp(translator_credits, "translator_credits") != 0 ?
- 						    translator_credits : NULL,
-  					   logo_pixbuf);
-	gdk_pixbuf_unref(logo_pixbuf);
-
-	gtk_window_set_transient_for(GTK_WINDOW(about), 
-				     cong_primary_window_get_toplevel(primary_window));
-
-	gtk_dialog_run(GTK_DIALOG(about));
-
+	gtk_show_about_dialog(cong_primary_window_get_toplevel(primary_window),
+		"program-name", _("Conglomerate XML Editor"),
+		"version", PACKAGE_VERSION,
+		"copyright", _("(C) 1999 Hans Petter Jansson\n(C) 2004 David Malcolm"),
+		"comments", _("Conglomerate: a free, user-friendly XML editor"),
+		"authors", authors,
+		"documenters", documenters,
+		"translator-credits", strcmp(translator_credits, "translator_credits") != 0 ?
+			translator_credits : NULL,
+		"logo-icon-name", "conglomerate",
+		NULL);
 }
 
 static void 
@@ -1465,9 +1447,7 @@ action_callback_help (GtkAction *action,
 {
 	GError *error = NULL;
 
-	gnome_help_display("conglomerate.xml", NULL, &error);
-
-	if(error!=NULL)
+	if(!gtk_show_uri(NULL, "ghelp:conglomerate", GDK_CURRENT_TIME, &error))
 	{
 		g_warning("%s", error->message);
 		g_error_free(error);
@@ -1515,7 +1495,7 @@ static GtkActionEntry primary_window_application_action_entries[] = {
 	/* Actions found in Help menu: */
 	{ "Contents", GTK_STOCK_HELP, N_("_Contents"), "F1", NULL, G_CALLBACK (action_callback_help) },	
 	{ "Homepage", GTK_STOCK_HOME, N_("_Homepage"), NULL, NULL, G_CALLBACK (action_callback_homepage) },	
-	{ "About", GNOME_STOCK_ABOUT, N_("_About"), NULL, NULL, G_CALLBACK (action_callback_about) },	
+	{ "About", GTK_STOCK_ABOUT, N_("_About"), NULL, NULL, G_CALLBACK (action_callback_about) },
 };
 
 /* Document-level Action Entries with a CongPrimaryWindow pointer as the callback data: */
diff --git a/src/cong-modification-cursor-change.c b/src/cong-modification-cursor-change.c
index 5a5827b..843f46d 100644
--- a/src/cong-modification-cursor-change.c
+++ b/src/cong-modification-cursor-change.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-modification-cursor-change.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-command.h"
 
@@ -54,10 +53,9 @@ redo (CongModification *modification);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongModificationCursorChange, 
-			cong_modification_cursor_change,
-			CongModification,
-			CONG_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongModificationCursorChange,
+              cong_modification_cursor_change,
+              CONG_MODIFICATION_TYPE );
 
 static void
 cong_modification_cursor_change_class_init (CongModificationCursorChangeClass *klass)
@@ -70,7 +68,7 @@ cong_modification_cursor_change_class_init (CongModificationCursorChangeClass *k
 }
 
 static void
-cong_modification_cursor_change_instance_init (CongModificationCursorChange *node)
+cong_modification_cursor_change_init (CongModificationCursorChange *node)
 {
 	node->private = g_new0(CongModificationCursorChangeDetails,1);
 }
@@ -138,7 +136,7 @@ finalize (GObject *object)
 	g_free (modification_cursor_change->private);
 	modification_cursor_change->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_modification_cursor_change_parent_class)->finalize (object);
 
 }
 
@@ -159,7 +157,7 @@ dispose (GObject *object)
 	cong_location_nullify_with_ref (doc, &PRIVATE(modification_cursor_change)->new_location);
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_modification_cursor_change_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-modification-selection-change.c b/src/cong-modification-selection-change.c
index edb7079..7fd41fd 100644
--- a/src/cong-modification-selection-change.c
+++ b/src/cong-modification-selection-change.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-modification-selection-change.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-selection.h"
 
@@ -56,10 +55,9 @@ redo (CongModification *modification);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongModificationSelectionChange, 
-			cong_modification_selection_change,
-			CongModification,
-			CONG_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongModificationSelectionChange,
+              cong_modification_selection_change,
+              CONG_MODIFICATION_TYPE );
 
 static void
 cong_modification_selection_change_class_init (CongModificationSelectionChangeClass *klass)
@@ -72,7 +70,7 @@ cong_modification_selection_change_class_init (CongModificationSelectionChangeCl
 }
 
 static void
-cong_modification_selection_change_instance_init (CongModificationSelectionChange *node)
+cong_modification_selection_change_init (CongModificationSelectionChange *node)
 {
 	node->private = g_new0(CongModificationSelectionChangeDetails,1);
 }
@@ -148,7 +146,7 @@ finalize (GObject *object)
 	g_free (modification_selection_change->private);
 	modification_selection_change->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_modification_selection_change_parent_class)->finalize (object);
 
 }
 
@@ -171,7 +169,7 @@ dispose (GObject *object)
 	cong_location_nullify_with_ref (doc, &PRIVATE(modification_selection_change)->new_logical_end);
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_modification_selection_change_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-modification-set-dtd-ptr.c b/src/cong-modification-set-dtd-ptr.c
index 1d36a68..fb44435 100644
--- a/src/cong-modification-set-dtd-ptr.c
+++ b/src/cong-modification-set-dtd-ptr.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-modification-set-dtd-ptr.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -53,10 +52,9 @@ redo (CongModification *modification);
 
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongModificationSetDtdPtr, 
-			cong_modification_set_dtd_ptr,
-			CongModification,
-			CONG_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongModificationSetDtdPtr,
+              cong_modification_set_dtd_ptr,
+              CONG_MODIFICATION_TYPE );
 
 static void
 cong_modification_set_dtd_ptr_class_init (CongModificationSetDtdPtrClass *klass)
@@ -69,7 +67,7 @@ cong_modification_set_dtd_ptr_class_init (CongModificationSetDtdPtrClass *klass)
 }
 
 static void
-cong_modification_set_dtd_ptr_instance_init (CongModificationSetDtdPtr *node)
+cong_modification_set_dtd_ptr_init (CongModificationSetDtdPtr *node)
 {
 	node->private = g_new0(CongModificationSetDtdPtrDetails,1);
 }
@@ -137,7 +135,7 @@ finalize (GObject *object)
 	g_free (modification_set_dtd_ptr->private);
 	modification_set_dtd_ptr->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_modification_set_dtd_ptr_parent_class)->finalize (object);
 
 }
 
@@ -160,7 +158,7 @@ dispose (GObject *object)
 	PRIVATE(modification_set_dtd_ptr)->new_dtd_ptr = NULL;
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_modification_set_dtd_ptr_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-modification.c b/src/cong-modification.c
index 267e05a..831074a 100644
--- a/src/cong-modification.c
+++ b/src/cong-modification.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-modification.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "cong-app.h"
@@ -40,10 +39,9 @@ struct _CongModificationDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongModification, 
-			cong_modification,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongModification,
+              cong_modification,
+              G_TYPE_OBJECT );
 
 static void
 cong_modification_class_init (CongModificationClass *klass)
@@ -51,7 +49,7 @@ cong_modification_class_init (CongModificationClass *klass)
 }
 
 static void
-cong_modification_instance_init (CongModification *node)
+cong_modification_init (CongModification *node)
 {
 	node->private = g_new0(CongModificationDetails,1);
 }
diff --git a/src/cong-node-modification-add-after.c b/src/cong-node-modification-add-after.c
index cbb4627..07cff3c 100644
--- a/src/cong-node-modification-add-after.c
+++ b/src/cong-node-modification-add-after.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-add-after.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -54,10 +53,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationAddAfter, 
-			cong_node_modification_add_after,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationAddAfter,
+              cong_node_modification_add_after,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_add_after_class_init (CongNodeModificationAddAfterClass *klass)
@@ -70,7 +68,7 @@ cong_node_modification_add_after_class_init (CongNodeModificationAddAfterClass *
 }
 
 static void
-cong_node_modification_add_after_instance_init (CongNodeModificationAddAfter *node)
+cong_node_modification_add_after_init (CongNodeModificationAddAfter *node)
 {
 	node->private = g_new0(CongNodeModificationAddAfterDetails,1);
 }
@@ -147,7 +145,7 @@ finalize (GObject *object)
 	g_free (node_modification_add_after->private);
 	node_modification_add_after->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_add_after_parent_class)->finalize (object);
 
 }
 
@@ -187,7 +185,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_add_after_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-add-before.c b/src/cong-node-modification-add-before.c
index 806ff42..c2c3772 100644
--- a/src/cong-node-modification-add-before.c
+++ b/src/cong-node-modification-add-before.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-add-before.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -54,10 +53,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationAddBefore, 
-			cong_node_modification_add_before,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationAddBefore,
+              cong_node_modification_add_before,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_add_before_class_init (CongNodeModificationAddBeforeClass *klass)
@@ -70,7 +68,7 @@ cong_node_modification_add_before_class_init (CongNodeModificationAddBeforeClass
 }
 
 static void
-cong_node_modification_add_before_instance_init (CongNodeModificationAddBefore *node)
+cong_node_modification_add_before_init (CongNodeModificationAddBefore *node)
 {
 	node->private = g_new0(CongNodeModificationAddBeforeDetails,1);
 }
@@ -147,7 +145,7 @@ finalize (GObject *object)
 	g_free (node_modification_add_before->private);
 	node_modification_add_before->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_add_before_parent_class)->finalize (object);
 
 }
 
@@ -187,7 +185,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_add_before_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-make-orphan.c b/src/cong-node-modification-make-orphan.c
index 0e1e7d9..6fcd94f 100644
--- a/src/cong-node-modification-make-orphan.c
+++ b/src/cong-node-modification-make-orphan.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-make-orphan.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -50,10 +49,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationMakeOrphan, 
-			cong_node_modification_make_orphan,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationMakeOrphan,
+              cong_node_modification_make_orphan,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_make_orphan_class_init (CongNodeModificationMakeOrphanClass *klass)
@@ -66,7 +64,7 @@ cong_node_modification_make_orphan_class_init (CongNodeModificationMakeOrphanCla
 }
 
 static void
-cong_node_modification_make_orphan_instance_init (CongNodeModificationMakeOrphan *node)
+cong_node_modification_make_orphan_init (CongNodeModificationMakeOrphan *node)
 {
 	node->private = g_new0(CongNodeModificationMakeOrphanDetails,1);
 }
@@ -135,7 +133,7 @@ finalize (GObject *object)
 	g_free (node_modification_make_orphan->private);
 	node_modification_make_orphan->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_make_orphan_parent_class)->finalize (object);
 
 }
 
@@ -164,7 +162,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_make_orphan_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-remove-attribute.c b/src/cong-node-modification-remove-attribute.c
index d7933d6..e6a7058 100644
--- a/src/cong-node-modification-remove-attribute.c
+++ b/src/cong-node-modification-remove-attribute.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-remove-attribute.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -50,10 +49,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationRemoveAttribute, 
-			cong_node_modification_remove_attribute,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationRemoveAttribute,
+              cong_node_modification_remove_attribute,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_remove_attribute_class_init (CongNodeModificationRemoveAttributeClass *klass)
@@ -66,7 +64,7 @@ cong_node_modification_remove_attribute_class_init (CongNodeModificationRemoveAt
 }
 
 static void
-cong_node_modification_remove_attribute_instance_init (CongNodeModificationRemoveAttribute *node)
+cong_node_modification_remove_attribute_init (CongNodeModificationRemoveAttribute *node)
 {
 	node->private = g_new0(CongNodeModificationRemoveAttributeDetails,1);
 }
@@ -142,7 +140,7 @@ finalize (GObject *object)
 	g_free (node_modification_remove_attribute->private);
 	node_modification_remove_attribute->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_remove_attribute_parent_class)->finalize (object);
 
 }
 
@@ -173,7 +171,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_remove_attribute_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-set-attribute.c b/src/cong-node-modification-set-attribute.c
index 0d4a65b..58c042e 100644
--- a/src/cong-node-modification-set-attribute.c
+++ b/src/cong-node-modification-set-attribute.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-set-attribute.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -51,10 +50,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationSetAttribute, 
-			cong_node_modification_set_attribute,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationSetAttribute,
+              cong_node_modification_set_attribute,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_set_attribute_class_init (CongNodeModificationSetAttributeClass *klass)
@@ -67,7 +65,7 @@ cong_node_modification_set_attribute_class_init (CongNodeModificationSetAttribut
 }
 
 static void
-cong_node_modification_set_attribute_instance_init (CongNodeModificationSetAttribute *node)
+cong_node_modification_set_attribute_init (CongNodeModificationSetAttribute *node)
 {
 	node->private = g_new0(CongNodeModificationSetAttributeDetails,1);
 }
@@ -150,7 +148,7 @@ finalize (GObject *object)
 	g_free (node_modification_set_attribute->private);
 	node_modification_set_attribute->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_set_attribute_parent_class)->finalize (object);
 
 }
 
@@ -188,7 +186,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_set_attribute_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-set-parent.c b/src/cong-node-modification-set-parent.c
index ff4984d..1ffc8ee 100644
--- a/src/cong-node-modification-set-parent.c
+++ b/src/cong-node-modification-set-parent.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-set-parent.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -53,10 +52,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationSetParent, 
-			cong_node_modification_set_parent,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationSetParent,
+              cong_node_modification_set_parent,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_set_parent_class_init (CongNodeModificationSetParentClass *klass)
@@ -69,7 +67,7 @@ cong_node_modification_set_parent_class_init (CongNodeModificationSetParentClass
 }
 
 static void
-cong_node_modification_set_parent_instance_init (CongNodeModificationSetParent *node)
+cong_node_modification_set_parent_init (CongNodeModificationSetParent *node)
 {
 	node->private = g_new0(CongNodeModificationSetParentDetails,1);
 }
@@ -141,7 +139,7 @@ finalize (GObject *object)
 	g_free (node_modification_set_parent->private);
 	node_modification_set_parent->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_set_parent_parent_class)->finalize (object);
 
 }
 
@@ -164,7 +162,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_set_parent_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification-set-text.c b/src/cong-node-modification-set-text.c
index 275594e..3706422 100644
--- a/src/cong-node-modification-set-text.c
+++ b/src/cong-node-modification-set-text.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification-set-text.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -52,10 +51,9 @@ static void
 redo (CongModification *modification);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModificationSetText, 
-			cong_node_modification_set_text,
-			CongNodeModification,
-			CONG_NODE_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModificationSetText,
+              cong_node_modification_set_text,
+              CONG_NODE_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_set_text_class_init (CongNodeModificationSetTextClass *klass)
@@ -68,7 +66,7 @@ cong_node_modification_set_text_class_init (CongNodeModificationSetTextClass *kl
 }
 
 static void
-cong_node_modification_set_text_instance_init (CongNodeModificationSetText *node)
+cong_node_modification_set_text_init (CongNodeModificationSetText *node)
 {
 	node->private = g_new0(CongNodeModificationSetTextDetails,1);
 }
@@ -131,7 +129,7 @@ finalize (GObject *object)
 	g_free (node_modification_set_text->private);
 	node_modification_set_text->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_node_modification_set_text_parent_class)->finalize (object);
 
 }
 
@@ -157,7 +155,7 @@ dispose (GObject *object)
 	}
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_node_modification_set_text_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-node-modification.c b/src/cong-node-modification.c
index 052dffa..5a4c955 100644
--- a/src/cong-node-modification.c
+++ b/src/cong-node-modification.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "cong-node-modification.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #define PRIVATE(x) ((x)->private)
@@ -35,10 +34,9 @@ struct _CongNodeModificationDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongNodeModification, 
-			cong_node_modification,
-			CongModification,
-			CONG_MODIFICATION_TYPE );
+G_DEFINE_TYPE(CongNodeModification,
+              cong_node_modification,
+              CONG_MODIFICATION_TYPE );
 
 static void
 cong_node_modification_class_init (CongNodeModificationClass *klass)
@@ -46,7 +44,7 @@ cong_node_modification_class_init (CongNodeModificationClass *klass)
 }
 
 static void
-cong_node_modification_instance_init (CongNodeModification *node)
+cong_node_modification_init (CongNodeModification *node)
 {
 	node->private = g_new0(CongNodeModificationDetails,1);
 }
diff --git a/src/cong-primary-window.c b/src/cong-primary-window.c
index 890934c..f3d3f30 100644
--- a/src/cong-primary-window.c
+++ b/src/cong-primary-window.c
@@ -43,8 +43,6 @@
 #include "cong-plugin-manager.h"
 
 #if 0
-#include <libgnome/libgnome.h>
-#include <libgnomeui/libgnomeui.h>
 #include <libgnomevfs/gnome-vfs.h>
 #include <libgnomevfs/gnome-vfs-mime-handlers.h>
 #endif
@@ -82,7 +80,7 @@
  * |         O <- split pane                |
  * |         |                              |
  * |----------------------------------------|
- * | AppBar                                 |
+ * | Status bar                             |
  * `----------------------------------------'
  * 
  */
@@ -387,7 +385,7 @@ add_standard_layout_for_doc (CongPrimaryWindow *primary_window,
 
 	/* --- Main window -> hpane --- */
 	w1 = gtk_hpaned_new();
-	gnome_app_set_contents(GNOME_APP(primary_window->window),w1);
+	gtk_box_pack_start(GTK_BOX(primary_window->vbox), w1, TRUE, TRUE, 0);
 	gtk_widget_show(w1);
 
 	/* Sidebar vpane */
@@ -485,7 +483,7 @@ add_tree_layout_for_doc (CongPrimaryWindow *primary_window,
 {
 	GtkWidget *widget = cong_dom_view_new (primary_window->doc,
 					       primary_window);
-	gnome_app_set_contents(GNOME_APP(primary_window->window),widget);
+	gtk_box_pack_start(GTK_BOX(primary_window->vbox), widget, TRUE, TRUE, 0);
 }
 
 static void
@@ -494,6 +492,9 @@ refresh_statusbar (CongPrimaryWindow *primary_window)
 	gchar *status_text = NULL;
 
 	g_assert (primary_window);
+
+	gtk_statusbar_pop(GTK_STATUSBAR(primary_window->status),
+	                  primary_window->status_xpath_ctx);
 	
 	/* Set status bar to XPath of selection (if any) */
 	if (primary_window->doc) {
@@ -501,17 +502,12 @@ refresh_statusbar (CongPrimaryWindow *primary_window)
 
 		if (selected_node) {
 			status_text = cong_node_get_path (selected_node);
+			gtk_statusbar_push (GTK_STATUSBAR(primary_window->status),
+			                    primary_window->status_xpath_ctx,
+			                    status_text);
+			g_free(status_text);
 		}
 	}
-
-	if (status_text) {
-		gnome_appbar_set_status (GNOME_APPBAR(primary_window->app_bar), 
-					 status_text);
-		g_free(status_text);
-	} else {
-		gnome_appbar_set_status (GNOME_APPBAR(primary_window->app_bar), 
-					 "");
-	}
 }
 
 static void
@@ -596,17 +592,14 @@ cong_primary_window_add_doc (CongPrimaryWindow *primary_window, CongDocument *do
 void 
 cong_primary_window_make_gui(CongPrimaryWindow *primary_window)
 {
-	gchar *title;
-
 	g_assert(primary_window);
 
 	gdk_rgb_init();
-
-	title = g_strdup(_("Conglomerate XML Editor"));
 	
 	/* --- Main window --- */
-	primary_window->window = gnome_app_new(PACKAGE_NAME,
-					       title);
+	primary_window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	gtk_window_set_title(GTK_WINDOW(primary_window->window),
+	                     _("Conglomerate XML Editor"));
 
 	gtk_window_set_default_icon_name("conglomerate");
 
@@ -620,12 +613,16 @@ cong_primary_window_make_gui(CongPrimaryWindow *primary_window)
 
 	gtk_widget_realize(GTK_WIDGET(primary_window->window));
 
+	/* --- Application vbox --- */
+
+	primary_window->vbox = gtk_vbox_new(FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(primary_window->window), primary_window->vbox);
+
 	/* --- Menus --- */
 
 	primary_window->merge_id = cong_menus_setup_ui_layout (primary_window);
 	primary_window->menus = gtk_ui_manager_get_widget (cong_primary_window_get_ui_manager (primary_window), "/MainMenuBar");
-	gnome_app_set_menus(GNOME_APP(primary_window->window), GTK_MENU_BAR(primary_window->menus));
-	gtk_widget_show(primary_window->menus);
+	gtk_box_pack_start(GTK_BOX(primary_window->vbox), primary_window->menus, FALSE, FALSE, 0);
 
 	{
 		GtkAccelGroup *accel_group;
@@ -645,48 +642,27 @@ cong_primary_window_make_gui(CongPrimaryWindow *primary_window)
 
 	/* --- Toolbar --- */
 	primary_window->toolbar = GTK_TOOLBAR (gtk_ui_manager_get_widget (cong_primary_window_get_ui_manager (primary_window), "/MainToolBar"));
-	gnome_app_set_toolbar(GNOME_APP(primary_window->window), primary_window->toolbar);
-	gtk_widget_show(GTK_WIDGET(primary_window->toolbar));
+	gtk_box_pack_start(GTK_BOX(primary_window->vbox), GTK_WIDGET(primary_window->toolbar), FALSE, FALSE, 0);
 
 	primary_window->doc = NULL;
 
 	/* --- Main window -> status area --- */
-#if 1
-	primary_window->app_bar = gnome_appbar_new (TRUE,
-						    TRUE,
-						    GNOME_PREFERENCES_NEVER);
-
-	gnome_app_set_statusbar(GNOME_APP(primary_window->window), primary_window->app_bar);
 
-	{
-		gchar *status_text = g_strdup(_("Welcome to the much-delayed Conglomerate editor."));	
-
-		gnome_appbar_set_status (GNOME_APPBAR(primary_window->app_bar), 
-					 status_text);
-
-		g_free(status_text);
-	}
-	
-#else
 	primary_window->status = gtk_statusbar_new();
 
-	gnome_app_set_statusbar(GNOME_APP(primary_window->window), primary_window->status);
+	gtk_box_pack_end(GTK_BOX(primary_window->vbox), primary_window->status, FALSE, FALSE, 0);
 
 	/* --- Putting it together --- */
 
 	primary_window->status_main_ctx = gtk_statusbar_get_context_id(GTK_STATUSBAR(primary_window->status), 
 								       "Main");
+	primary_window->status_xpath_ctx = gtk_statusbar_get_context_id(GTK_STATUSBAR(primary_window->status),
+	                                                                "xpath");
+	gtk_statusbar_push(GTK_STATUSBAR(primary_window->status),
+			   primary_window->status_main_ctx,
+			   _("Welcome to the much-delayed Conglomerate editor."));
 
-	{
-		gchar *status_text = g_strdup(_("Welcome to the much-delayed Conglomerate editor."));	
-
-		gtk_statusbar_push(GTK_STATUSBAR(primary_window->status), 
-				   primary_window->status_main_ctx,
-				   status_text);
-
-		g_free(status_text);
-	}
-#endif
+	gtk_widget_show_all(primary_window->vbox);
 }
 
 /**
diff --git a/src/cong-primary-window.h b/src/cong-primary-window.h
index e3372c6..a5b0506 100644
--- a/src/cong-primary-window.h
+++ b/src/cong-primary-window.h
@@ -48,9 +48,10 @@ struct _CongPrimaryWindow
 	GtkWidget *cong_editor_widget3;
 	GtkWidget *scroller3;
 
+	GtkWidget *vbox;
 	GtkWidget *window, *menus;
 	GtkToolbar *toolbar;
-	GtkWidget *app_bar;
+	GtkWidget *status;
 
 	/* Property pages: */
 	GtkNotebook *property_notebook;
@@ -61,6 +62,9 @@ struct _CongPrimaryWindow
 	GtkRecentManager *recent_manager;
 	GtkActionGroup   *recent_action_group;
 	guint             recent_ui_id;
+
+	/* Status bar message contexts: */
+	unsigned status_main_ctx, status_xpath_ctx;
 };
 
 
diff --git a/src/cong-property-page.c b/src/cong-property-page.c
index c534fa1..ebdb9eb 100644
--- a/src/cong-property-page.c
+++ b/src/cong-property-page.c
@@ -50,10 +50,9 @@ on_selection_change (CongDocument *doc,
 		     CongPropertyPage *property_page);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongPropertyPage, 
-			cong_property_page,
-			GtkHBox,
-			GTK_TYPE_HBOX);
+G_DEFINE_TYPE(CongPropertyPage,
+              cong_property_page,
+              GTK_TYPE_HBOX);
 
 CONG_EEL_IMPLEMENT_MUST_OVERRIDE_SIGNAL (cong_property_page, selection_change_handler);
 
@@ -68,7 +67,7 @@ cong_property_page_class_init (CongPropertyPageClass *klass)
 }
 
 static void
-cong_property_page_instance_init (CongPropertyPage *property_page)
+cong_property_page_init (CongPropertyPage *property_page)
 {
 	property_page->private = g_new0(CongPropertyPageDetails,1);
 }
@@ -124,7 +123,7 @@ finalize (GObject *object)
 	g_free (property_page->private);
 	property_page->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_property_page_parent_class)->finalize (object);
 }
 
 static void
@@ -142,7 +141,7 @@ dispose (GObject *object)
 		PRIVATE(property_page)->doc = NULL;
 	}
 		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_property_page_parent_class)->dispose (object);
 }
 
 static void
diff --git a/src/cong-service-document-factory.h b/src/cong-service-document-factory.h
index 07a0917..4360445 100644
--- a/src/cong-service-document-factory.h
+++ b/src/cong-service-document-factory.h
@@ -90,14 +90,17 @@ cong_plugin_for_each_document_factory (CongPlugin *plugin,
 
 /* The DocumentFactory objects all create pages within one big Druid; the booleans provide hints to make
    navigation easier */
-GnomeDruidPageStandard*
-cong_new_file_assistant_new_page (CongNewFileAssistant *assistant, 
-				  CongServiceDocumentFactory *document_factory, 
-				  gboolean is_first_of_factory,
-				  gboolean is_last_of_factory);
+GtkWidget *
+cong_new_file_assistant_new_page(CongNewFileAssistant *assistant,
+				 CongServiceDocumentFactory *document_factory,
+                                 GtkWidget *content,
+                                 const char *question,
+                                 const char *info,
+				 gboolean is_first_of_factory,
+				 gboolean is_last_of_factory);
 void 
 cong_new_file_assistant_set_page (CongNewFileAssistant *assistant, 
-				  GnomeDruidPage *page);
+				  GtkWidget *page);
 
 /* Method to get toplevel window of the assistant; useful when displaying error dialogs */
 GtkWindow*
diff --git a/src/cong-traversal-node.c b/src/cong-traversal-node.c
index 3937c39..a4da248 100644
--- a/src/cong-traversal-node.c
+++ b/src/cong-traversal-node.c
@@ -25,7 +25,6 @@
 #include "global.h"
 #include "cong-traversal-node.h"
 #include "cong-document-traversal.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-marshal.h"
 
@@ -39,10 +38,9 @@ struct _CongTraversalNodeDetails
 };
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongTraversalNode, 
-			cong_traversal_node,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongTraversalNode,
+              cong_traversal_node,
+              G_TYPE_OBJECT );
 
 static void
 cong_traversal_node_class_init (CongTraversalNodeClass *klass)
@@ -50,7 +48,7 @@ cong_traversal_node_class_init (CongTraversalNodeClass *klass)
 }
 
 static void
-cong_traversal_node_instance_init (CongTraversalNode *traversal_node)
+cong_traversal_node_init (CongTraversalNode *traversal_node)
 {
 	traversal_node->private = g_new0(CongTraversalNodeDetails,1);
 }
diff --git a/src/cong-util.c b/src/cong-util.c
index 9513562..e69d827 100644
--- a/src/cong-util.c
+++ b/src/cong-util.c
@@ -218,12 +218,9 @@ cong_util_load_icon (const gchar *icon_basename)
 
 	g_return_val_if_fail(icon_basename, NULL);
 
-	filename = g_strdup_printf("conglomerate/%s-16.png", icon_basename);
-	full_path = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-					       GNOME_FILE_DOMAIN_APP_PIXMAP,
-					       filename,
-					       FALSE,
-					       NULL);
+	filename = g_strdup_printf("conglomerate/pixmaps/%s-16.png", icon_basename);
+	full_path = cong_app_locate_file (cong_app_singleton(),
+					  filename);
 	pixbuf = gdk_pixbuf_new_from_file(full_path, NULL);
 	
 	g_free(full_path);
@@ -1556,37 +1553,17 @@ cong_util_show_in_window (GtkWidget *content,
 	g_return_if_fail (content);
 	g_return_if_fail (title);
 
-	window = gnome_app_new (PACKAGE_NAME,
-				title);
-	gnome_app_set_contents (GNOME_APP(window), 
-				content);
-
-	/* Set up the window nicely: */
-	{	
-		gchar *logo_path;
-		GdkPixbuf *pixbuf;
-		
-		logo_path = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						       GNOME_FILE_DOMAIN_APP_PIXMAP,
-						       "conglomerate/conglomerate-logo.png",
-						       FALSE,
-						       NULL);
-		pixbuf = gdk_pixbuf_new_from_file(logo_path, NULL);
+	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	gtk_window_set_title(GTK_WINDOW(window), title);
+	gtk_container_add(GTK_CONTAINER(window), content);
+	gtk_window_set_icon_name(GTK_WINDOW(window), "conglomerate");
 	
-		g_free(logo_path);
-	
-		gtk_window_set_icon(GTK_WINDOW(window),
-				    pixbuf);
-
-		gdk_pixbuf_unref(pixbuf);
-
-	}
-
+	/* Set up the window nicely: */
 	gtk_window_set_default_size(GTK_WINDOW(window),
 				    500,
 				    400);
 
-	gtk_widget_show(GTK_WIDGET(window));
+	gtk_widget_show_all(GTK_WIDGET(window));
 }
 
 GtkFileFilter*
diff --git a/src/cong-xpath-expression.c b/src/cong-xpath-expression.c
index 2051f3c..4e3935a 100644
--- a/src/cong-xpath-expression.c
+++ b/src/cong-xpath-expression.c
@@ -23,7 +23,6 @@
  */
 
 #include "global.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-util.h"
 #include "cong-xpath-expression.h"
@@ -64,10 +63,9 @@ static gchar*
 evaluate_expression (CongXPathExpression *xpath_expression);
 
 /* Exported function definitions: */
-GNOME_CLASS_BOILERPLATE(CongXPathExpression, 
-			cong_xpath_expression,
-			GObject,
-			G_TYPE_OBJECT );
+G_DEFINE_TYPE(CongXPathExpression,
+              cong_xpath_expression,
+              G_TYPE_OBJECT );
 
 static void
 cong_xpath_expression_class_init (CongXPathExpressionClass *klass)
@@ -86,7 +84,7 @@ cong_xpath_expression_class_init (CongXPathExpressionClass *klass)
 }
 
 static void
-cong_xpath_expression_instance_init (CongXPathExpression *node)
+cong_xpath_expression_init (CongXPathExpression *node)
 {
 	node->private = g_new0(CongXPathExpressionDetails,1);
 }
@@ -200,7 +198,7 @@ finalize (GObject *object)
 	g_free (xpath_expression->private);
 	xpath_expression->private = NULL;
 	
-	G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (cong_xpath_expression_parent_class)->finalize (object);
 }
 
 static void
@@ -223,7 +221,7 @@ dispose (GObject *object)
 	xmlXPathFreeContext (PRIVATE(xpath_expression)->ctxt);
 
 	/* Call the parent method: */		
-	GNOME_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
+	G_OBJECT_CLASS (cong_xpath_expression_parent_class)->dispose (object);
 }
 
 /* Implementation details: */
diff --git a/src/global.h b/src/global.h
index 986993d..d43ba36 100644
--- a/src/global.h
+++ b/src/global.h
@@ -27,8 +27,7 @@
 
 #include <libxml/tree.h>
 #include <gtk/gtk.h>
-#include <libgnome/libgnome.h>
-#include <libgnomeui/libgnomeui.h>
+#include <glib/gi18n.h>
 #include <gconf/gconf-client.h>
 
 /* We include GnomeVFS stuff here to try to alleviate build problems on Fink: */
diff --git a/src/main.c b/src/main.c
index f7d872c..0339023 100644
--- a/src/main.c
+++ b/src/main.c
@@ -15,6 +15,8 @@ main( int   argc,
 	bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
 	textdomain(GETTEXT_PACKAGE);
 
+	gnome_vfs_init();
+
 	cong_app_construct_singleton (argc, 
 				      argv);
 
diff --git a/src/plugin-admonition-node-element.c b/src/plugin-admonition-node-element.c
index e1aab3c..0d15a1e 100644
--- a/src/plugin-admonition-node-element.c
+++ b/src/plugin-admonition-node-element.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "plugin-admonition-node-element.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-util.h"
 #include "cong-enum-mapping.h"
@@ -81,12 +80,9 @@ load_icon (const gchar *icon_filename)
 
 	g_return_val_if_fail(icon_filename, NULL);
 
-	modified_icon_filename = g_strconcat(PACKAGE_NAME,"/",icon_filename, NULL);
-	full_path = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-					       GNOME_FILE_DOMAIN_APP_PIXMAP,
-					       modified_icon_filename,
-					       FALSE,
-					       NULL);
+	modified_icon_filename = g_build_filename(PACKAGE_NAME, "pixmaps", icon_filename, NULL);
+	full_path = cong_app_locate_file (cong_app_singleton(),
+					  modified_icon_filename);
 
 	g_message ("Trying to load \"%s\"", full_path);
 
diff --git a/src/plugin-arbitrary.c b/src/plugin-arbitrary.c
index 5d750f6..5657b1e 100644
--- a/src/plugin-arbitrary.c
+++ b/src/plugin-arbitrary.c
@@ -44,7 +44,7 @@ typedef struct ArbitraryGUI ArbitraryGUI;
 
 struct ArbitraryGUI
 {
-	GnomeDruidPageStandard *page;
+	GtkWidget *page;
 	GladeXML *xml;
 	GtkWidget *middle_page;
 	GtkEntry *entry_ns_uri;
@@ -161,14 +161,12 @@ factory_page_creation_callback_arbitrary(CongServiceDocumentFactory *factory, Co
 	
 	arbitrary_gui->page = cong_new_file_assistant_new_page (assistant, 
 								factory, 
+	                                                        arbitrary_gui->middle_page,
+	                                                        _("The XML document needs a top-level element."),
+	                                                        NULL,
 								TRUE,
 								TRUE);
 
-	gnome_druid_page_standard_append_item (GNOME_DRUID_PAGE_STANDARD(arbitrary_gui->page),
-					       _("The XML document needs a top-level element."),
-					       arbitrary_gui->middle_page,
-					       "");
-
 	arbitrary_gui->entry_ns_uri = GTK_ENTRY (glade_xml_get_widget (arbitrary_gui->xml, "entry_ns_uri"));
 	g_assert (arbitrary_gui->entry_ns_uri);
 
diff --git a/src/plugin-css.c b/src/plugin-css.c
index 89bd4a0..7882b10 100644
--- a/src/plugin-css.c
+++ b/src/plugin-css.c
@@ -63,11 +63,8 @@ CRCascade*
 make_cascade (void)
 {
         CRCascade *cascade;
-	gchar *css_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-							 GNOME_FILE_DOMAIN_APP_DATADIR,
-							 "conglomerate/css/docbook.css", /* FIXME: why do I need the conglomerate prefix? */
-							 FALSE,
-							 NULL);
+	gchar *css_filename = cong_app_locate_file (cong_app_singleton(),
+						    "conglomerate/css/docbook.css"); /* FIXME: why do I need the conglomerate prefix? */
 	g_message (css_filename);
 
         cascade = cr_cascade_new (load_stylesheet (css_filename),
diff --git a/src/plugin-docbook.c b/src/plugin-docbook.c
index d7771c0..63776ec 100644
--- a/src/plugin-docbook.c
+++ b/src/plugin-docbook.c
@@ -1440,8 +1440,7 @@ open_ulink_in_browser (CongNodePtr node)
 
 	if (url) {	
 		/* FIXME: should we have some error handling? */
-		gnome_url_show (url,
-				NULL);
+		gtk_show_uri(NULL, url, GDK_CURRENT_TIME, NULL);
 	}
 
 	g_free (url);
@@ -1480,11 +1479,8 @@ docbook_orderedlist_page_factory_method (CongServiceNodePropertyPage *custom_pro
 	g_return_val_if_fail (custom_property_page, NULL);
 	g_return_val_if_fail (doc, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-orderedlist-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-orderedlist-properties.glade");
 
 	global_glade_doc_ptr = doc;
 #if 0
@@ -1589,11 +1585,8 @@ docbook_ulink_page_factory_method (CongServiceNodePropertyPage *custom_property_
 	g_return_val_if_fail(custom_property_page, NULL);
 	g_return_val_if_fail(doc, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-ulink-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-ulink-properties.glade");
 	global_glade_doc_ptr = doc;
 #if 0
 	global_glade_node_ptr = node;
@@ -1627,11 +1620,8 @@ docbook_node_page_factory_method_scope (CongServiceNodePropertyPage *custom_prop
 	g_return_val_if_fail (custom_property_page, NULL);
 	g_return_val_if_fail (doc, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-common-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-common-properties.glade");
 
 	global_glade_doc_ptr = doc;
 #if 0
@@ -1660,11 +1650,8 @@ docbook_node_page_factory_method_language (CongServiceNodePropertyPage *custom_p
 	g_return_val_if_fail (custom_property_page, NULL);
 	g_return_val_if_fail (doc, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-common-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-common-properties.glade");
 
 	global_glade_doc_ptr = doc;
 #if 0
@@ -1693,11 +1680,8 @@ docbook_node_page_factory_method_revisions (CongServiceNodePropertyPage *custom_
 	g_return_val_if_fail (custom_property_page, NULL);
 	g_return_val_if_fail (doc, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-common-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-common-properties.glade");
 
 	global_glade_doc_ptr = doc;
 #if 0
@@ -1742,11 +1726,8 @@ docbook_generic_node_properties_factory_method (CongServiceNodePropertyDialog *c
 	g_return_val_if_fail(doc, NULL);
 	g_return_val_if_fail(node, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-common-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-common-properties.glade");
 
 	global_glade_doc_ptr = doc;
 	global_glade_node_ptr = node;
@@ -1794,11 +1775,8 @@ docbook_orderedlist_properties_factory_method(CongServiceNodePropertyDialog *cus
 	g_return_val_if_fail(doc, NULL);
 	g_return_val_if_fail(node, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-orderedlist-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-orderedlist-properties.glade");
 
 	global_glade_doc_ptr = doc;
 	global_glade_node_ptr = node;
@@ -1903,11 +1881,8 @@ docbook_ulink_properties_factory_method(CongServiceNodePropertyDialog *custom_pr
 	g_return_val_if_fail(doc, NULL);
 	g_return_val_if_fail(node, NULL);
 
-	glade_filename = gnome_program_locate_file (cong_app_get_gnome_program (cong_app_singleton()),
-						    GNOME_FILE_DOMAIN_APP_DATADIR,
-						    "conglomerate/glade/docbook-ulink-properties.glade",
-						    FALSE,
-						    NULL);
+	glade_filename = cong_app_locate_file (cong_app_singleton(),
+					       "conglomerate/glade/docbook-ulink-properties.glade");
 
 	global_glade_doc_ptr = doc;
 	global_glade_node_ptr = node;
diff --git a/src/plugin-lists-area-listitem.c b/src/plugin-lists-area-listitem.c
index 87f7b61..7263423 100644
--- a/src/plugin-lists-area-listitem.c
+++ b/src/plugin-lists-area-listitem.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "plugin-lists-area-listitem.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-eel.h"
 #include "cong-app.h"
@@ -40,10 +39,9 @@ struct _CongEditorAreaListitemDetails
 
 /* Method implementation prototypes: */
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaListitem, 
-			cong_editor_area_listitem,
-			CongEditorAreaLabelled,
-			CONG_EDITOR_AREA_LABELLED_TYPE );
+G_DEFINE_TYPE(CongEditorAreaListitem,
+              cong_editor_area_listitem,
+              CONG_EDITOR_AREA_LABELLED_TYPE );
 
 static void
 cong_editor_area_listitem_class_init (CongEditorAreaListitemClass *klass)
@@ -51,7 +49,7 @@ cong_editor_area_listitem_class_init (CongEditorAreaListitemClass *klass)
 }
 
 static void
-cong_editor_area_listitem_instance_init (CongEditorAreaListitem *area_listitem)
+cong_editor_area_listitem_init (CongEditorAreaListitem *area_listitem)
 {
 	area_listitem->private = g_new0(CongEditorAreaListitemDetails,1);
 }
diff --git a/src/plugin-lists-node-element-listitem.c b/src/plugin-lists-node-element-listitem.c
index c612e17..d0a5f5c 100644
--- a/src/plugin-lists-node-element-listitem.c
+++ b/src/plugin-lists-node-element-listitem.c
@@ -25,7 +25,6 @@
 
 #include "global.h"
 #include "plugin-lists-node-element-listitem.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 #include "cong-util.h"
 #include "cong-enum-mapping.h"
diff --git a/src/plugin-paragraph-area-paragraph.c b/src/plugin-paragraph-area-paragraph.c
index 2940945..9ed4189 100644
--- a/src/plugin-paragraph-area-paragraph.c
+++ b/src/plugin-paragraph-area-paragraph.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "plugin-paragraph-area-paragraph.h"
-#include <libgnome/gnome-macros.h>
 
 #include "cong-eel.h"
 #include "cong-app.h"
@@ -47,10 +46,9 @@ render_self (CongEditorArea *area,
 	     const GdkRectangle *widget_rect);
 
 /* GObject boilerplate stuff: */
-GNOME_CLASS_BOILERPLATE(CongEditorAreaParagraph, 
-			cong_editor_area_paragraph,
-			CongEditorAreaBorder,
-			CONG_EDITOR_AREA_BORDER_TYPE );
+G_DEFINE_TYPE(CongEditorAreaParagraph,
+              cong_editor_area_paragraph,
+              CONG_EDITOR_AREA_BORDER_TYPE );
 
 static void
 cong_editor_area_paragraph_class_init (CongEditorAreaParagraphClass *klass)
@@ -62,7 +60,7 @@ cong_editor_area_paragraph_class_init (CongEditorAreaParagraphClass *klass)
 }
 
 static void
-cong_editor_area_paragraph_instance_init (CongEditorAreaParagraph *area_paragraph)
+cong_editor_area_paragraph_init (CongEditorAreaParagraph *area_paragraph)
 {
 	area_paragraph->private = g_new0(CongEditorAreaParagraphDetails,1);
 
diff --git a/src/plugin-paragraph-node-element-paragraph.c b/src/plugin-paragraph-node-element-paragraph.c
index 980ff7e..754b612 100644
--- a/src/plugin-paragraph-node-element-paragraph.c
+++ b/src/plugin-paragraph-node-element-paragraph.c
@@ -24,7 +24,6 @@
 
 #include "global.h"
 #include "plugin-paragraph-node-element-paragraph.h"
-#include <libgnome/gnome-macros.h>
 #include "cong-eel.h"
 
 #include "plugin-paragraph-area-paragraph.h"
diff --git a/src/plugin-random.c b/src/plugin-random.c
index 8745961..fa021cd 100644
--- a/src/plugin-random.c
+++ b/src/plugin-random.c
@@ -47,7 +47,7 @@ typedef struct RandomGUI RandomGUI;
 
 struct RandomGUI
 {
-	GnomeDruidPageStandard *page;
+	GtkWidget *page;
 	GladeXML *xml;
 	GtkWidget *middle_page;
 	GtkWidget *combo_box;
@@ -133,14 +133,12 @@ factory_page_creation_callback_random(CongServiceDocumentFactory *factory, CongN
 	
 	random_gui->page = cong_new_file_assistant_new_page (assistant, 
 							    factory, 
+	                                                    random_gui->middle_page,
+	                                                    _("What kind of random XML document would you like to create?"),
+	                                                    NULL,
 							    TRUE,
 							    TRUE);	
 
-	gnome_druid_page_standard_append_item (GNOME_DRUID_PAGE_STANDARD(random_gui->page),
-					       _("What kind of random XML document would you like to create?"),
-					       random_gui->middle_page,
-					       "");
-
 	/*
 	 * In order to get the combo box to work in its "simple" mode - i.e.
 	 * without having to create a list store - I seem to have to have at
diff --git a/src/plugin-tests.c b/src/plugin-tests.c
index 062d10e..75313b6 100644
--- a/src/plugin-tests.c
+++ b/src/plugin-tests.c
@@ -49,7 +49,7 @@ struct UnicodeCreationInfo
 void 
 factory_page_creation_callback_unicode(CongServiceDocumentFactory *factory, CongNewFileAssistant *assistant, gpointer user_data)
 {
-	GnomeDruidPageStandard *page;
+	GtkWidget *page;
 
 #if 0
 	g_message("factory_page_creation_callback_unicode");
@@ -57,14 +57,12 @@ factory_page_creation_callback_unicode(CongServiceDocumentFactory *factory, Cong
 
 	page = cong_new_file_assistant_new_page(assistant, 
 						factory, 
+	                                        gtk_calendar_new(),
+	                                        _("This is a dummy calendar control; it's a placeholder and will eventually be replaced with some useful options"),
+	                                        user_data,
 						TRUE,
 						TRUE);
 
-	gnome_druid_page_standard_append_item(GNOME_DRUID_PAGE_STANDARD(page),
-					      _("This is a dummy calendar control; it's a placeholder and will eventually be replaced with some useful options"),
-					      gtk_calendar_new(),
-					      user_data);
-
 #if 0
 	cong_new_file_assistant_set_page(assistant, GNOME_DRUID_PAGE(page));
 #endif



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