[glade3/glade-3-8] Revert " * configure.ac: Require GTK+ 3.0 and change package domain from glade3 -> glade"



commit 478f59e812dccee1943bafa2566eb343d36bb535
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Tue Dec 14 16:21:45 2010 +0900

    Revert "	* configure.ac: Require GTK+ 3.0 and change package domain from glade3 -> glade"
    
    This reverts commit 9240c83dddcedaa3dd482418020622b288c6915f.
    
    Conflicts:
    
    	ChangeLog
    	configure.ac
    	gladeui/Makefile.am
    	plugins/gtk+/gtk+.xml.in

 ChangeLog                                          |    8 +-
 configure.ac                                       |   67 +-
 gladeui/Makefile.am                                |   27 +-
 gladeui/glade-app.c                                |   11 +
 gladeui/glade-utils.c                              |   71 +
 gladeui/glade-utils.h                              |    4 +
 plugins/Makefile.am                                |    4 +
 plugins/gnome/Makefile.am                          |   45 +
 plugins/gnome/bonobo.xml.in                        |   56 +
 plugins/gnome/canvas.xml.in                        |   88 +
 plugins/gnome/glade-gnome.c                        | 1736 ++++++++++++++++++++
 plugins/gnome/gnome.xml.in                         |  384 +++++
 plugins/gnome/icons/16x16/Makefile.am              |   30 +
 plugins/gnome/icons/16x16/widget-bonobo-dock.png   |  Bin 0 -> 142 bytes
 .../gnome/icons/16x16/widget-bonobo-dockitem.png   |  Bin 0 -> 156 bytes
 plugins/gnome/icons/16x16/widget-gnome-about.png   |  Bin 0 -> 221 bytes
 plugins/gnome/icons/16x16/widget-gnome-app.png     |  Bin 0 -> 168 bytes
 plugins/gnome/icons/16x16/widget-gnome-appbar.png  |  Bin 0 -> 113 bytes
 plugins/gnome/icons/16x16/widget-gnome-canvas.png  |  Bin 0 -> 108 bytes
 .../gnome/icons/16x16/widget-gnome-colorpicker.png |  Bin 0 -> 199 bytes
 .../gnome/icons/16x16/widget-gnome-dateedit.png    |  Bin 0 -> 164 bytes
 plugins/gnome/icons/16x16/widget-gnome-dialog.png  |  Bin 0 -> 206 bytes
 plugins/gnome/icons/16x16/widget-gnome-druid.png   |  Bin 0 -> 150 bytes
 .../icons/16x16/widget-gnome-druidpageedge.png     |  Bin 0 -> 150 bytes
 .../icons/16x16/widget-gnome-druidpagestandard.png |  Bin 0 -> 155 bytes
 plugins/gnome/icons/16x16/widget-gnome-entry.png   |  Bin 0 -> 153 bytes
 .../gnome/icons/16x16/widget-gnome-fileentry.png   |  Bin 0 -> 164 bytes
 .../gnome/icons/16x16/widget-gnome-fontpicker.png  |  Bin 0 -> 291 bytes
 plugins/gnome/icons/16x16/widget-gnome-href.png    |  Bin 0 -> 121 bytes
 .../gnome/icons/16x16/widget-gnome-iconentry.png   |  Bin 0 -> 204 bytes
 .../gnome/icons/16x16/widget-gnome-iconlist.png    |  Bin 0 -> 241 bytes
 .../icons/16x16/widget-gnome-iconselection.png     |  Bin 0 -> 224 bytes
 .../gnome/icons/16x16/widget-gnome-messagebox.png  |  Bin 0 -> 229 bytes
 plugins/gnome/icons/16x16/widget-gnome-pixmap.png  |  Bin 0 -> 268 bytes
 .../gnome/icons/16x16/widget-gnome-pixmapentry.png |  Bin 0 -> 164 bytes
 .../gnome/icons/16x16/widget-gnome-propertybox.png |  Bin 0 -> 224 bytes
 plugins/gnome/icons/22x22/Makefile.am              |   31 +
 plugins/gnome/icons/22x22/widget-bonobo-dock.png   |  Bin 0 -> 147 bytes
 .../gnome/icons/22x22/widget-bonobo-dockitem.png   |  Bin 0 -> 174 bytes
 plugins/gnome/icons/22x22/widget-gnome-about.png   |  Bin 0 -> 236 bytes
 plugins/gnome/icons/22x22/widget-gnome-app.png     |  Bin 0 -> 181 bytes
 plugins/gnome/icons/22x22/widget-gnome-appbar.png  |  Bin 0 -> 122 bytes
 plugins/gnome/icons/22x22/widget-gnome-canvas.png  |  Bin 0 -> 115 bytes
 .../gnome/icons/22x22/widget-gnome-colorpicker.png |  Bin 0 -> 168 bytes
 .../gnome/icons/22x22/widget-gnome-dateedit.png    |  Bin 0 -> 177 bytes
 plugins/gnome/icons/22x22/widget-gnome-dialog.png  |  Bin 0 -> 283 bytes
 plugins/gnome/icons/22x22/widget-gnome-druid.png   |  Bin 0 -> 143 bytes
 .../icons/22x22/widget-gnome-druidpageedge.png     |  Bin 0 -> 143 bytes
 .../icons/22x22/widget-gnome-druidpagestandard.png |  Bin 0 -> 143 bytes
 plugins/gnome/icons/22x22/widget-gnome-entry.png   |  Bin 0 -> 170 bytes
 .../gnome/icons/22x22/widget-gnome-fileentry.png   |  Bin 0 -> 177 bytes
 .../gnome/icons/22x22/widget-gnome-fontpicker.png  |  Bin 0 -> 175 bytes
 plugins/gnome/icons/22x22/widget-gnome-href.png    |  Bin 0 -> 150 bytes
 .../gnome/icons/22x22/widget-gnome-iconentry.png   |  Bin 0 -> 226 bytes
 .../gnome/icons/22x22/widget-gnome-iconlist.png    |  Bin 0 -> 265 bytes
 .../icons/22x22/widget-gnome-iconselection.png     |  Bin 0 -> 274 bytes
 .../gnome/icons/22x22/widget-gnome-messagebox.png  |  Bin 0 -> 310 bytes
 plugins/gnome/icons/22x22/widget-gnome-pixmap.png  |  Bin 0 -> 269 bytes
 .../gnome/icons/22x22/widget-gnome-pixmapentry.png |  Bin 0 -> 177 bytes
 .../gnome/icons/22x22/widget-gnome-propertybox.png |  Bin 0 -> 263 bytes
 plugins/gnome/icons/Makefile.am                    |    3 +
 plugins/gtk+/Makefile.am                           |    2 +-
 plugins/gtk+/glade-gtk.c                           |  229 +++-
 plugins/gtk+/gtk+.xml.in                           |  117 ++
 src/Makefile.am                                    |   20 +-
 src/{glade.rc.in => glade-3.rc.in}                 |    0
 66 files changed, 2865 insertions(+), 68 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1945f50..1f490f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,13 @@
+2010-12-14  Tristan Van Berkom <tristanvb openismus com>
+
+	* Reverted 3.0 commit, now targetting this branch to the final GTK+ 2.x chapter
+
 2010-11-12  Johannes Schmid <jhs gnome org>
 
 	* gladeui/glade-project.c:
 	project-model: Don't be picky about non-existing children
 	It is sometimes possible that children are added before their parents
-	in the tree. We simply ignore that for now as it doesn't 
+	in the tree. We simply ignore that for now as it doesn't
 	cause any harm in the tree model.
 
 2010-10-12  Marco Diego Aurélio Mesquita <marcodiegomesquita gmail com>
@@ -78,7 +82,7 @@
 
 	* configure.ac: Require GTK+ 3.0 and change package domain from glade3 -> glade
 
-	* src/Makefile.am, gladeui/Makefile.am: application 'glade-3' -> 'glade', 
+	* src/Makefile.am, gladeui/Makefile.am: application 'glade-3' -> 'glade',
 	  library libgladeui-1 -> libgladeui-2
 
 	* plugins/Makefile.am, plugins/gnome/*: Removed libgnomeui support.
diff --git a/configure.ac b/configure.ac
index 3937147..25c4f0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ m4_define(glade_minor_version, 7)
 m4_define(glade_micro_version, 1)
 m4_define(glade_version, glade_major_version.glade_minor_version.glade_micro_version)
 
-AC_INIT([glade], [glade_version],
+AC_INIT([glade3], [glade_version],
 	[http://bugzilla.gnome.org/enter_bug.cgi?product=glade3])
 	
 AC_CONFIG_HEADERS([config.h])
@@ -53,7 +53,7 @@ AM_PROG_LIBTOOL
 # If any interfaces have been removed since the last public release, then set GLADE_AGE to 0.
 # Reference: http://www.gnu.org/software/libtool/manual.html#Versioning
 GLADE_REVISION=0
-GLADE_CURRENT=0
+GLADE_CURRENT=10
 GLADE_AGE=0
 GLADE_CURRENT_MINUS_AGE=`expr $GLADE_CURRENT - $GLADE_AGE`
 AC_SUBST(GLADE_REVISION)
@@ -121,39 +121,9 @@ GTK_DOC_CHECK(1.9)
 dnl ================================================================
 dnl Check for gtk+
 dnl ================================================================
-# Which gtk+ API version to compile against
-
-AC_MSG_CHECKING([which gtk+ version to compile against])
-AC_ARG_WITH([gtk],
-  [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 3.0)])],
-  [case "$with_gtk" in
-     2.0|3.0) ;;
-     *) AC_MSG_ERROR([invalid gtk version specified]) ;;
-   esac],
-  [with_gtk=3.0])
-AC_MSG_RESULT([$with_gtk])
-
-case "$with_gtk" in
-  2.0) GTK_API_VERSION=2.0
-       GTK_REQUIRED=2.14.0
-       ;;
-  3.0) GTK_API_VERSION=3.0
-       GTK_REQUIRED=2.90.0
-       ;;
-esac
-
+PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.20 gthread-2.0 libxml-2.0 >= 2.4.0])
 AC_SUBST(GTK_LIBS)
 AC_SUBST(GTK_CFLAGS)
-AC_SUBST([GTK_API_VERSION])
-
-AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"])
-AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"])
-
-PKG_CHECK_MODULES([GTK],[
-  gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
-  libxml-2.0 >= 2.4.0
-])
-
 
 dnl ================================================================
 dnl Check for the unix print widgets in gtk+
@@ -163,6 +133,25 @@ AC_CHECK_FUNCS(gtk_print_unix_dialog_new,[have_unix_print=yes]; break,[have_unix
 AM_CONDITIONAL(HAVE_GTK_UNIX_PRINT, test x"$have_unix_print" = "xyes")
 
 dnl ================================================================
+dnl Check for optional gnome libs
+dnl ================================================================
+AC_ARG_ENABLE(gnome,
+    AS_HELP_STRING([--disable-gnome], [disable gnome catalog]),
+    check_gnome=$enableval, check_gnome=yes)
+
+if test x"$check_gnome" = x"yes"; then
+  PKG_CHECK_MODULES(GNOME, [libbonoboui-2.0 libgnomeui-2.0],
+    [have_gnome=yes],[have_gnome=no])
+  AC_SUBST(GNOME_LIBS)
+  AC_SUBST(GNOME_CFLAGS)
+else
+  have_gnome=no
+fi
+
+AM_CONDITIONAL(BUILD_GNOME, test x"$have_gnome" = "xyes")
+
+
+dnl ================================================================
 dnl Python for optional python dev libs
 dnl ================================================================
 AC_ARG_ENABLE(python,
@@ -260,10 +249,6 @@ if test "x$_gdk_tgt" = xquartz; then
    AC_SUBST(IGE_MAC_CFLAGS)
 fi
 
-
-AC_SUBST([GLADE_PREFIX])
-
-
 AC_SUBST([AM_CPPFLAGS])
 AC_SUBST([AM_CFLAGS])
 AC_SUBST([AM_CXXFLAGS])
@@ -291,12 +276,16 @@ data/icons/hicolor/scalable/apps/Makefile
 gladeui/Makefile
 gladeui/gladeui.rc
 src/Makefile
-src/glade.rc
+src/glade-3.rc
 plugins/Makefile
 plugins/gtk+/Makefile
 plugins/gtk+/icons/Makefile
 plugins/gtk+/icons/16x16/Makefile
 plugins/gtk+/icons/22x22/Makefile
+plugins/gnome/Makefile
+plugins/gnome/icons/Makefile
+plugins/gnome/icons/16x16/Makefile
+plugins/gnome/icons/22x22/Makefile
 plugins/python/Makefile
 po/Makefile.in
 doc/Makefile
@@ -312,8 +301,8 @@ Configuration:
 
 	Source code location:	 ${srcdir}
 	Compiler:		 ${CC}
-	GTK+ version:            $with_gtk
 	GTK+ UNIX Print Widgets: ${have_unix_print}
+	GNOME UI Widgets:	 ${have_gnome}
 	PYTHON Widgets support:	 ${have_python}
 
 	Build Reference Manual:  ${enable_gtk_doc}
diff --git a/gladeui/Makefile.am b/gladeui/Makefile.am
index c52043c..b0e29e8 100644
--- a/gladeui/Makefile.am
+++ b/gladeui/Makefile.am
@@ -36,18 +36,23 @@ glade-win32-res.o: glade-previewer.rc
 
 common_defines = \
 	-DG_LOG_DOMAIN=\"GladeUI\"                      \
+	-DGLADE_DATADIR="\"$(pkgdatadir)\""		\
+	-DGLADE_LIBDIR="\"$(pkglibdir)\""		\
 	-DGLADE_CATALOGSDIR="\"$(pkgdatadir)/catalogs\""\
 	-DGLADE_MODULESDIR="\"$(pkglibdir)/modules\""	\
+	-DGLADE_PLUGINSDIR="\"$(pkglibdir)/plugins\""	\
 	-DGLADE_PIXMAPSDIR="\"$(pkgdatadir)/pixmaps\""	\
-	-DGLADE_LOCALEDIR="\"$(datadir)/locale\""\
-  -DGLADE_BINDIR="\"$(bindir)\""
+	-DGLADE_LOCALEDIR="\"$(datadir)/locale\""	\
+	-DGLADE_BINDIR="\"$(bindir)\""
+
+lib_LTLIBRARIES = libgladeui-1.la
 
 BUILT_SOURCES = glade-marshallers.c glade-marshallers.h
 
 EXTRA_DIST = glade-marshallers.list gladeui.rc.in icon-naming-spec.c glade-previewer.rc.in
 
 # The glade-3 core library
-libgladeui_2_la_SOURCES = \
+libgladeui_1_la_SOURCES = \
 	glade-widget-adaptor.c \
 	glade-debug.c \
 	glade-project.c \
@@ -92,24 +97,24 @@ libgladeui_2_la_SOURCES = \
 	glade-editor-table.c \
 	glade-cell-renderer-icon.c
 
-libgladeui_2_la_CPPFLAGS =  \
+libgladeui_1_la_CPPFLAGS =  \
 	$(common_defines)   \
 	-I$(top_srcdir)     \
 	-I$(top_builddir)   \
 	$(AM_CPPFLAGS)
 
-libgladeui_2_la_CFLAGS =    \
+libgladeui_1_la_CFLAGS =    \
 	$(GTK_CFLAGS)       \
 	$(IGE_MAC_BUNDLE_FLAG) \
 	$(IGE_MAC_CFLAGS)  \
 	$(WARN_CFLAGS)      \
 	$(AM_CFLAGS)
 
-libgladeui_2_la_LDFLAGS = -version-info $(GLADE_CURRENT):$(GLADE_REVISION):$(GLADE_AGE) $(AM_LDFLAGS)
-libgladeui_2_la_LIBADD = $(GTK_LIBS) $(IGE_MAC_LIBS)
+libgladeui_1_la_LDFLAGS = -version-info $(GLADE_CURRENT):$(GLADE_REVISION):$(GLADE_AGE) $(AM_LDFLAGS)
+libgladeui_1_la_LIBADD = $(GTK_LIBS) $(IGE_MAC_LIBS)
 
 
-libgladeuiincludedir=$(includedir)/libgladeui-2.0/gladeui
+libgladeuiincludedir=$(includedir)/libgladeui-1.0/gladeui
 libgladeuiinclude_HEADERS = \
 	glade.h \
 	glade-debug.h \
@@ -149,12 +154,12 @@ libgladeuiinclude_HEADERS = \
 
 
 if PLATFORM_WIN32
-libgladeui_2_la_LDFLAGS += -no-undefined
+libgladeui_1_la_LDFLAGS += -no-undefined
 endif
 
 if NATIVE_WIN32
-libgladeui_2_la_LDFLAGS += -Wl,gladeui-win32-res.o -export-symbols gladeui.def
-libgladeui_2_la_DEPENDENCIES = gladeui-win32-res.o gladeui.def
+libgladeui_1_la_LDFLAGS += -Wl,gladeui-win32-res.o -export-symbols gladeui.def
+libgladeui_1_la_DEPENDENCIES = gladeui-win32-res.o gladeui.def
 endif
 
 gladeui-win32-res.o: gladeui.rc
diff --git a/gladeui/glade-app.c b/gladeui/glade-app.c
index 363d0ee..070c2e3 100644
--- a/gladeui/glade-app.c
+++ b/gladeui/glade-app.c
@@ -101,6 +101,7 @@ static guint glade_app_signals[LAST_SIGNAL] = { 0 };
 /* installation paths */
 static gchar *catalogs_dir = NULL;
 static gchar *modules_dir  = NULL;
+static gchar *plugins_dir  = NULL;
 static gchar *pixmaps_dir  = NULL;
 static gchar *locale_dir   = NULL;
 static gchar *bin_dir      = NULL;
@@ -341,6 +342,15 @@ glade_app_get_modules_dir (void)
 }
 
 const gchar *
+glade_app_get_plugins_dir (void)
+{
+	glade_init_check ();
+
+	return plugins_dir;
+}
+
+
+const gchar *
 glade_app_get_pixmaps_dir (void)
 {
 	glade_init_check ();
@@ -391,6 +401,7 @@ build_package_paths (void)
 #else
 	catalogs_dir = g_strdup (GLADE_CATALOGSDIR);
 	modules_dir  = g_strdup (GLADE_MODULESDIR);
+	plugins_dir  = g_strdup (GLADE_PLUGINSDIR);
 	pixmaps_dir  = g_strdup (GLADE_PIXMAPSDIR);
 	locale_dir   = g_strdup (GLADE_LOCALEDIR);
 	bin_dir      = g_strdup (GLADE_BINDIR);
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index 705f404..e77c8de 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -421,6 +421,77 @@ glade_util_compare_stock_labels (gconstpointer a, gconstpointer b)
 }
 
 /**
+ * glade_util_gtk_combo_func:
+ * @data:
+ *
+ * TODO: write me
+ *
+ * Returns:
+ */
+gchar *
+glade_util_gtk_combo_func (gpointer data)
+{
+	GtkListItem * listitem = data;
+
+	/* I needed to pinch this as well - Damon. */
+	static const gchar *gtk_combo_string_key = "gtk-combo-string-value";
+
+	GtkWidget *label;
+	gchar *ltext = NULL;
+
+	ltext = (gchar *) g_object_get_data (G_OBJECT (listitem),
+					     gtk_combo_string_key);
+	if (!ltext) {
+		label = gtk_bin_get_child (GTK_BIN (listitem));
+		if (!label || !GTK_IS_LABEL (label))
+			return NULL;
+		ltext = (gchar*) gtk_label_get_text (GTK_LABEL (label));
+	}
+
+	return ltext;
+}
+
+/* These are pinched from gtkcombo.c */
+/**
+ * glade_util_gtk_combo_find:
+ * @combo:
+ *
+ * TODO: write me
+ *
+ * Returns:
+ */
+gpointer /* GtkListItem *  */
+glade_util_gtk_combo_find (GtkCombo * combo)
+{
+	gchar *text;
+	gchar *ltext;
+	GList *clist;
+	gsize len;
+
+	int (*string_compare) (const char *, const char *, gsize);
+
+	if (combo->case_sensitive)
+		string_compare = strncmp;
+	else
+		string_compare = g_ascii_strncasecmp;
+
+	text  = (gchar*) gtk_entry_get_text (GTK_ENTRY (combo->entry));
+	len   = text ? strlen (text) : 0;
+	clist = GTK_LIST (combo->list)->children;
+
+	while (clist && clist->data) {
+		ltext = glade_util_gtk_combo_func (GTK_LIST_ITEM (clist->data));
+		if (!ltext)
+			continue;
+		if (!(*string_compare) (ltext, text, len))
+			return (GtkListItem *) clist->data;
+		clist = clist->next;
+	}
+
+	return NULL;
+}
+
+/**
  * glade_util_hide_window:
  * @window: a #GtkWindow
  *
diff --git a/gladeui/glade-utils.h b/gladeui/glade-utils.h
index 0d1b1e5..43336a4 100644
--- a/gladeui/glade-utils.h
+++ b/gladeui/glade-utils.h
@@ -49,6 +49,10 @@ gint              glade_util_compare_stock_labels (gconstpointer a, gconstpointe
 
 void              glade_util_hide_window		(GtkWindow *window);
 
+gchar            *glade_util_gtk_combo_func	(gpointer data);
+
+gpointer          glade_util_gtk_combo_find	(GtkCombo *combo);
+
 
 GtkWidget        *glade_util_file_dialog_new (const gchar *title,
 					      GladeProject *project,
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 1324bc4..093e188 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -2,6 +2,10 @@
 
 SUBDIRS = gtk+
 
+if BUILD_GNOME
+SUBDIRS += gnome
+endif
+
 if BUILD_PYTHON
 SUBDIRS += python
 endif
diff --git a/plugins/gnome/Makefile.am b/plugins/gnome/Makefile.am
new file mode 100644
index 0000000..c6be160
--- /dev/null
+++ b/plugins/gnome/Makefile.am
@@ -0,0 +1,45 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = icons
+
+libgladeui = $(top_builddir)/gladeui/libgladeui-1.la
+
+
+# libgladegnome
+
+gladegnome_LTLIBRARIES = libgladegnome.la
+gladegnomedir = $(pkglibdir)/modules
+
+libgladegnome_la_SOURCES = glade-gnome.c
+libgladegnome_la_CPPFLAGS = $(AM_CPPFLAGS)
+libgladegnome_la_CFLAGS = \
+        -DG_LOG_DOMAIN=\"GladeUI-GNOME\" \
+	-I$(top_srcdir)                  \
+	-I$(top_builddir)                \
+	-I$(top_srcdir)/plugins/gtk+     \
+	$(GNOME_CFLAGS)                  \
+	$(PLUGINS_WARN_CFLAGS)           \
+	$(AM_CPPFLAGS)
+libgladegnome_la_LDFLAGS = -module -avoid-version $(GNOME_LIBS) $(AM_LDFLAGS)
+libgladegnome_la_LIBADD = $(libgladeui) $(GLADE_LIBS)
+
+if PLATFORM_WIN32
+libgladegnome_la_LDFLAGS += -no-undefined
+endif
+
+
+# catalog data
+
+catalogsdir = $(pkgdatadir)/catalogs
+catalogs_DATA = bonobo.xml \
+                canvas.xml \
+                gnome.xml \
+                bonobo.xml.in \
+                canvas.xml.in \
+                gnome.xml.in
+ INTLTOOL_XML_NOMERGE_RULE@
+
+
+CLEANFILES = bonobo.xml canvas.xml gnome.xml
+
+EXTRA_DIST = $(catalogs_DATA)
diff --git a/plugins/gnome/bonobo.xml.in b/plugins/gnome/bonobo.xml.in
new file mode 100644
index 0000000..a1eb806
--- /dev/null
+++ b/plugins/gnome/bonobo.xml.in
@@ -0,0 +1,56 @@
+<glade-catalog name="bonobo"
+               library="gladegnome"
+	       supports="libglade"
+               depends="gnome"
+               domain="glade3">
+  <glade-widget-classes>
+    <glade-widget-class name="BonoboDock" generic-name="dock" title="Bonobo Dock">
+      <set-property-function>glade_gnome_bonobodock_set_property</set-property-function>
+      <add-child-function>glade_gnome_bonobodock_add_child</add-child-function>
+      <remove-child-function>glade_gnome_bonobodock_remove_child</remove-child-function>
+      <replace-child-function>glade_gnome_bonobodock_replace_child</replace-child-function>
+      <get-children-function>glade_gnome_bonobodock_get_children</get-children-function>
+      <child-set-property-function>glade_gnome_bonobodock_set_child_property</child-set-property-function>
+      <child-get-property-function>glade_gnome_bonobodock_get_child_property</child-get-property-function>
+      <properties>
+        <property id="allow-floating" name="Allow Floating">
+	  <tooltip>If floating dock iteam are allowed</tooltip>
+	  <spec>glade_standard_boolean_spec</spec>
+	</property>
+      </properties>
+
+      <packing-properties>
+        <property id="placement">
+          <spec>glade_gnome_bonobo_dock_placement_spec</spec>
+          <displayable-values>
+            <value id="BONOBO_DOCK_LEFT" _name="Left"/>
+            <value id="BONOBO_DOCK_RIGHT" _name="Right"/>
+            <value id="BONOBO_DOCK_TOP" _name="Top"/>
+            <value id="BONOBO_DOCK_BOTTOM" _name="Bottom"/>
+            <value id="BONOBO_DOCK_FLOATING" _name="Floating"/>
+          </displayable-values>
+        </property>
+        <property id="band" name="Band">
+	  <spec>glade_standard_int_spec</spec>
+	</property>
+        <property id="position" name="Position">
+	  <spec>glade_standard_int_spec</spec>
+	</property>
+        <property id="offset" name="Offset">
+	  <spec>glade_standard_int_spec</spec>
+	</property>
+        <property id="behavior">
+	  <spec>glade_gnome_bonobo_dock_item_behavior_spec</spec>
+          <displayable-values>
+            <value id="BONOBO_DOCK_ITEM_BEH_EXCLUSIVE" _name="Exclusive"/>
+            <value id="BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING" _name="Never Floating"/>
+            <value id="BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL" _name="Never Vertical"/>
+	    <value id="BONOBO_DOCK_ITEM_BEH_NEVER_HORIZONTAL" _name="Never Horizontal"/>
+	    <value id="BONOBO_DOCK_ITEM_BEH_LOCKED" _name="Locked"/>
+          </displayable-values>
+	</property>
+      </packing-properties>
+    </glade-widget-class>
+    <glade-widget-class name="BonoboDockItem" generic-name="dockitem" title="Bonobo Dock Item"/>
+  </glade-widget-classes>
+</glade-catalog>
diff --git a/plugins/gnome/canvas.xml.in b/plugins/gnome/canvas.xml.in
new file mode 100644
index 0000000..a92a92f
--- /dev/null
+++ b/plugins/gnome/canvas.xml.in
@@ -0,0 +1,88 @@
+<glade-catalog name="canvas"
+               icon-prefix="gnome"
+               library="gladegnome"
+	       supports="libglade"
+               depends="gnome"
+               domain="glade3">
+  <glade-widget-classes>
+    <glade-widget-class name="GnomeCanvas" generic-name="canvas" _title="GNOME Canvas">
+      <set-property-function>glade_gnome_canvas_set_property</set-property-function>
+      <properties>
+        <property id="scroll-x1" _name="Min X">
+	  <_tooltip>The minimum X coordinate</_tooltip>
+	  <spec>glade_standard_float_spec</spec>
+	</property>
+        <property id="scroll-y1" _name="Min Y">
+	  <_tooltip>The minimum Y coordinate</_tooltip>
+	  <spec>glade_standard_float_spec</spec>
+	</property>
+        <property id="scroll-x2" _name="Max X">
+	  <_tooltip>The maximum X coordinate</_tooltip>
+	  <spec>glade_standard_float_spec</spec>
+	</property>
+        <property id="scroll-y2" _name="Max Y">
+	  <_tooltip>The maximum Y coordinate</_tooltip>
+	  <spec>glade_standard_float_spec</spec>
+	</property> 
+        <property id="pixels-per-unit" _name="Pixels per unit">
+	  <_tooltip>The number of pixels corresponding to one unit</_tooltip>
+	  <spec>glade_standard_float_spec</spec>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <!-- This is deprecated -->
+    <glade-widget-class name="GnomeIconList" generic-name="iconlist" _title="GNOME Icon List">
+      <post-create-function>glade_gnome_icon_list_post_create</post-create-function>
+      <set-property-function>glade_gnome_icon_list_set_property</set-property-function>
+      <properties>
+        <property id="scroll-x1" disabled="True"/>
+        <property id="scroll-y1" disabled="True"/>
+        <property id="scroll-x2" disabled="True"/>
+        <property id="scroll-y2" disabled="True"/>
+        <property id="pixels-per-unit" disabled="True"/>
+        <property id="selection-mode" _name="Selection Mode">
+	  <parameter-spec>
+	    <type>GParamEnum</type>
+	    <value-type>GnomeIconListMode</value-type>
+	  </parameter-spec>
+	  <_tooltip>The selection mode</_tooltip>
+          <displayable-values>
+            <value id="GNOME_ICON_LIST_ICONS" _name="List Icons"/>
+            <value id="GNOME_ICON_LIST_TEXT_BELOW" _name="Text Below"/>
+            <value id="GNOME_ICON_LIST_TEXT_RIGHT" _name="Text Right"/>
+          </displayable-values>
+	</property>
+        <property id="icon-width" _name="Icon Width" default="78">
+          <_tooltip>The width of each icon</_tooltip>
+          <spec>glade_standard_int_spec</spec>
+        </property>
+        <property id="row-spacing" _name="Row Spacing" default="4">
+          <_tooltip>The number of pixels between rows of icons</_tooltip>
+          <spec>glade_standard_int_spec</spec>
+        </property>
+        <property id="column-spacing" _name="Column Spacing"  default="2">
+          <_tooltip>The number of pixels between columns of icons</_tooltip>
+          <spec>glade_standard_int_spec</spec>
+        </property>
+        <property id="text-spacing" _name="Text Spacing" default="2">
+          <_tooltip>The number of pixels between the text and the icon</_tooltip>
+          <spec>glade_standard_int_spec</spec>
+        </property>
+        <property id="text-editable" _name="Text Editable" ignore="True">
+          <_tooltip>If the icon text can be edited by the user</_tooltip>
+          <spec>glade_standard_boolean_spec</spec>
+        </property>
+        <property id="text-static" _name="Text Static" ignore="True">
+          <_tooltip>If the icon text is static, in which case it will not be copied by the GnomeIconList</_tooltip>
+          <spec>glade_standard_boolean_spec</spec>
+        </property>
+      </properties>
+    </glade-widget-class>
+  </glade-widget-classes>
+  
+  <glade-widget-group name="gnome-canvas" _title="GNOME Canvas">
+    <glade-widget-class-ref name="GnomeCanvas"/>
+    <glade-widget-class-ref name="GnomeIconList"/>
+  </glade-widget-group>
+</glade-catalog>
diff --git a/plugins/gnome/glade-gnome.c b/plugins/gnome/glade-gnome.c
new file mode 100644
index 0000000..55689d9
--- /dev/null
+++ b/plugins/gnome/glade-gnome.c
@@ -0,0 +1,1736 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2006 Juan Pablo Ugarte.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Authors:
+ *   Juan Pablo Ugarte <juanpablougarte gmail com>
+ */
+
+#include <config.h>
+
+#include <gladeui/glade.h>
+#include <gladeui/glade-editor-property.h>
+
+#include <glade-gtk.h>
+
+#include <libbonoboui.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>	
+
+/* This function does absolutely nothing
+ * (and is for use in overriding post_create functions).
+ */
+void
+empty (GObject *container, GladeCreateReason reason)
+{
+}
+
+/* Catalog init function */
+void
+glade_gnomeui_init (const gchar *name)
+{
+	gchar *argv[2] = {"glade-3", NULL};
+	GtkStockItem items [] = {
+		{ GNOME_STOCK_TIMER,              "GNOME Timer",         0, },
+		{ GNOME_STOCK_TIMER_STOP,         "GNOME Timer stop",    0, },
+		{ GNOME_STOCK_TRASH,              "GNOME Trash",         0, },
+		{ GNOME_STOCK_TRASH_FULL,         "GNOME Trash Full",    0, },
+		{ GNOME_STOCK_SCORES,             "GNOME Scores",        0, },
+		{ GNOME_STOCK_ABOUT,              "GNOME About",         0, },
+		{ GNOME_STOCK_BLANK,              "GNOME Blank",         0, },
+		{ GNOME_STOCK_VOLUME,             "GNOME Volume",        0, },
+		{ GNOME_STOCK_MIDI,               "GNOME Midi",          0, },
+		{ GNOME_STOCK_MIC,                "GNOME Mic",           0, },
+		{ GNOME_STOCK_LINE_IN,            "GNOME Line In",       0, },
+		{ GNOME_STOCK_MAIL,               "GNOME Mail",          0, },
+		{ GNOME_STOCK_MAIL_RCV,           "GNOME Mail Recive",   0, },
+		{ GNOME_STOCK_MAIL_SND,           "GNOME Mail Send",     0, },
+		{ GNOME_STOCK_MAIL_RPL,           "GNOME Mail Reply",    0, },
+		{ GNOME_STOCK_MAIL_FWD,           "GNOME Mail Foward",   0, },
+		{ GNOME_STOCK_MAIL_NEW,           "GNOME Mail New",      0, },
+		{ GNOME_STOCK_ATTACH,             "GNOME Attach",        0, },
+		{ GNOME_STOCK_BOOK_RED,           "GNOME Book Red",      0, },
+		{ GNOME_STOCK_BOOK_GREEN,         "GNOME Book Green",    0, },
+		{ GNOME_STOCK_BOOK_BLUE,          "GNOME Book Blue",     0, },
+		{ GNOME_STOCK_BOOK_YELLOW,        "GNOME Book Yellow",   0, },
+		{ GNOME_STOCK_BOOK_OPEN,          "GNOME Book Open",     0, },
+		{ GNOME_STOCK_MULTIPLE_FILE,      "GNOME Multiple File", 0, },
+		{ GNOME_STOCK_NOT,                "GNOME Not",           0, },
+		{ GNOME_STOCK_TABLE_BORDERS,      "GNOME Table Borders", 0, },
+		{ GNOME_STOCK_TABLE_FILL,         "GNOME Table Fill",    0, },
+		{ GNOME_STOCK_TEXT_INDENT,        "GNOME Indent",        0, },
+		{ GNOME_STOCK_TEXT_UNINDENT,      "GNOME Unindent",      0, },
+		{ GNOME_STOCK_TEXT_BULLETED_LIST, "GNOME Bulleted List", 0, },
+		{ GNOME_STOCK_TEXT_NUMBERED_LIST, "GNOME Numbered List", 0, }
+	};
+
+	gnome_program_init ("glade-3", "1.0",
+			    LIBGNOMEUI_MODULE, 1, argv,
+			    GNOME_PARAM_NONE);
+	
+	gtk_stock_add (items, sizeof (items) / sizeof (GtkStockItem));
+	
+	glade_standard_stock_append_prefix ("gnome-stock-");
+}
+
+/* GnomeApp */
+void
+glade_gnome_app_post_create (GladeWidgetAdaptor *adaptor,
+			     GObject            *object, 
+			     GladeCreateReason   reason)
+{
+	static GladeWidgetAdaptor *menubar_adaptor = NULL, *dock_item_adaptor;
+	GnomeApp *app = GNOME_APP (object);
+	GladeWidget *gapp = glade_widget_get_from_gobject (object);
+	GladeProject *project = glade_widget_get_project (gapp);
+	GladeWidget *gdock, *gdock_item, *gmenubar;
+	
+	/* Add BonoboDock */
+	gdock = glade_widget_adaptor_create_internal
+		(gapp, G_OBJECT (app->dock),
+		 "dock",
+		 glade_widget_get_name (gapp),
+		 FALSE,
+		 GLADE_CREATE_LOAD);
+	
+	if (reason != GLADE_CREATE_USER) return;
+	
+	/* Add MenuBar */
+	if (menubar_adaptor == NULL)
+	{
+		dock_item_adaptor = glade_widget_adaptor_get_by_type (BONOBO_TYPE_DOCK_ITEM);
+		menubar_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_MENU_BAR);
+	}
+
+	/* DockItem */
+	gdock_item = glade_widget_adaptor_create_widget (dock_item_adaptor, FALSE,
+							 "parent", gdock, 
+							 "project", project, NULL);
+	glade_widget_add_child (gdock, gdock_item, FALSE);
+	glade_widget_pack_property_set (gdock_item, "behavior", 
+					BONOBO_DOCK_ITEM_BEH_EXCLUSIVE |
+					BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL |
+					BONOBO_DOCK_ITEM_BEH_LOCKED);
+	/* MenuBar */
+	gmenubar = glade_widget_adaptor_create_widget (menubar_adaptor, FALSE,
+						       "parent", gdock_item, 
+						       "project", project, NULL);
+
+	glade_widget_add_child (gdock_item, gmenubar, FALSE);
+	
+	/* Add Client Area placeholder */
+	bonobo_dock_set_client_area (BONOBO_DOCK (app->dock),
+				     glade_placeholder_new());
+	
+	/* Add StatusBar */
+	glade_widget_property_set (gapp, "has-statusbar", TRUE);
+}
+
+GObject *
+glade_gnome_app_get_internal_child (GladeWidgetAdaptor  *adaptor,
+				    GObject             *object, 
+				    const gchar         *name)
+{
+	GObject     *child = NULL;
+	GnomeApp    *app   = GNOME_APP (object);
+	GladeWidget *gapp  = glade_widget_get_from_gobject (object);
+	
+	if (strcmp ("dock", name) == 0)
+		child = G_OBJECT (app->dock);
+	else if (strcmp ("appbar", name) == 0)
+	{
+		child = G_OBJECT (app->statusbar);
+		if (child == NULL)
+		{
+			/*
+			  Create appbar, libglade handle this as an internal
+			  widget but appbar is not created by GnomeApp.
+			  So we need to create it here for loading purpouses since
+			  "has-statusbar" property is not saved in the .glade file.
+			*/
+			glade_widget_property_set (gapp, "has-statusbar", TRUE);
+			child = G_OBJECT (app->statusbar);
+		}
+	}
+
+	return child;
+}
+
+GList *
+glade_gnome_app_get_children (GladeWidgetAdaptor  *adaptor,
+			      GObject             *object)
+{
+	GnomeApp *app = GNOME_APP (object);
+	GList *list = NULL;
+	
+	if (app->dock) list = g_list_append (list, G_OBJECT (app->dock));
+	if (app->statusbar) list = g_list_append (list, G_OBJECT (app->statusbar));
+	if (app->contents) list = g_list_append (list, G_OBJECT (app->contents));
+		
+	return list;
+}
+
+void
+glade_gnome_app_set_child_property (GladeWidgetAdaptor  *adaptor,
+				    GObject             *container,
+				    GObject             *child,
+				    const gchar         *property_name,
+				    GValue              *value)
+{
+	GnomeApp *app = GNOME_APP (container);
+	
+	g_return_if_fail (GTK_IS_WIDGET (child));
+	
+	gtk_container_child_set_property (GTK_CONTAINER (app->vbox), 
+					  (GNOME_IS_APPBAR (child)) 
+						? gtk_widget_get_parent (GTK_WIDGET (child))
+						: GTK_WIDGET (child),
+					  property_name,
+					  value);
+}
+
+void
+glade_gnome_app_get_child_property (GladeWidgetAdaptor  *adaptor,
+				    GObject             *container,
+				    GObject             *child,
+				    const gchar         *property_name,
+				    GValue              *value)
+{
+	GnomeApp *app = GNOME_APP (container);
+	
+	g_return_if_fail (GTK_IS_WIDGET (child));
+	
+	gtk_container_child_get_property (GTK_CONTAINER (app->vbox), 
+					  (GNOME_IS_APPBAR (child)) 
+						? gtk_widget_get_parent (GTK_WIDGET (child))
+						: GTK_WIDGET (child),
+					  property_name,
+					  value);
+}
+
+static void
+glade_gnome_app_set_has_statusbar (GObject *object, const GValue *value)
+{
+	GnomeApp *app = GNOME_APP (object);
+	GladeWidget *gapp = glade_widget_get_from_gobject (object), *gbar;
+	
+	if (g_value_get_boolean (value))
+	{
+		if (app->statusbar == NULL)
+		{
+			GtkWidget *bar = gnome_appbar_new (TRUE, TRUE,
+						GNOME_PREFERENCES_NEVER);
+
+			gnome_app_set_statusbar (app, bar);
+			
+			gbar = glade_widget_adaptor_create_internal
+				(gapp, G_OBJECT (bar), "appbar",
+				 glade_widget_get_name (gapp),
+				 FALSE, GLADE_CREATE_USER);
+
+			glade_widget_set_parent (gbar, gapp);
+			glade_widget_pack_property_set (gbar, "expand", FALSE);
+		}
+	}
+	else 
+	{
+		if (app->statusbar)
+		{
+			/* FIXME: we need to destroy GladeWidgets too */
+			glade_project_remove_object (glade_widget_get_project (gapp),
+						     G_OBJECT (app->statusbar));
+			gtk_container_remove (GTK_CONTAINER (app->vbox),
+					      gtk_widget_get_parent (app->statusbar));
+			app->statusbar = NULL;
+		}
+	}
+}
+
+
+void
+glade_gnome_app_set_property (GladeWidgetAdaptor *adaptor,
+			      GObject            *object,
+			      const gchar        *id,
+			      const GValue       *value)
+{
+	if (!strcmp (id, "has-statusbar"))
+		glade_gnome_app_set_has_statusbar (object, value);
+	else if (!strcmp (id, "enable-layout-config"))
+		/* do nothing */;
+	else
+		GWA_GET_CLASS (GTK_TYPE_WINDOW)->set_property (adaptor,
+							       object,
+							       id, value);
+}
+
+/* GnomeAppBar */
+GType
+gnome_app_bar_get_type (void)
+{
+	return gnome_appbar_get_type ();
+}
+
+void
+glade_gnome_app_bar_post_create (GladeWidgetAdaptor  *adaptor,
+				 GObject             *object, 
+				 GladeCreateReason    reason)
+{
+	gnome_appbar_set_status (GNOME_APPBAR (object), _("Status Message."));
+}
+
+/* GnomeDateEdit */
+static void
+glade_gnome_date_edit_set_no_show_all (GtkWidget *widget, gpointer data)
+{
+	gtk_widget_set_no_show_all (widget, TRUE);
+}
+
+void
+glade_gnome_date_edit_post_create (GladeWidgetAdaptor  *adaptor,
+				   GObject             *object, 
+				   GladeCreateReason    reason)
+{
+	/* DateEdit's "dateedit-flags" property hides/shows some widgets so we 
+	 * need to explicitly tell that they should not be affected by 
+	 * gtk_widget_show_all() (its, for example, called after a paste)
+	 */
+	gtk_container_foreach (GTK_CONTAINER (object),
+			       glade_gnome_date_edit_set_no_show_all, NULL);
+}
+
+/* GnomeDruid */
+static GladeWidget *
+glade_gnome_druid_add_page (GladeWidget *gdruid, gboolean edge)
+{
+	GladeWidget *gpage;
+	static GladeWidgetAdaptor *dps_adaptor = NULL, *dpe_adaptor;
+	GladeProject *project = glade_widget_get_project (gdruid);
+	
+	if (dps_adaptor == NULL)
+	{
+		dps_adaptor = glade_widget_adaptor_get_by_type (GNOME_TYPE_DRUID_PAGE_STANDARD);
+		dpe_adaptor = glade_widget_adaptor_get_by_type (GNOME_TYPE_DRUID_PAGE_EDGE);
+	}
+	
+	gpage = glade_widget_adaptor_create_widget (edge ? dpe_adaptor : dps_adaptor, FALSE,
+						    "parent", gdruid, 
+						    "project", project, NULL);
+	
+	glade_widget_add_child (gdruid, gpage, FALSE);
+
+	return gpage;
+}
+
+void
+glade_gnome_druid_post_create (GladeWidgetAdaptor  *adaptor,
+			       GObject             *object, 
+			       GladeCreateReason    reason)
+{
+	GladeWidget *gdruid, *gpage;
+
+	if (reason != GLADE_CREATE_USER) return;
+
+	gdruid = glade_widget_get_from_gobject (object);
+	
+	/* Add Start Page */
+	gpage = glade_gnome_druid_add_page (gdruid, TRUE);
+	glade_widget_property_set (gpage, "position", GNOME_EDGE_START);
+	
+	/* Add Standard Pages */
+	glade_gnome_druid_add_page (gdruid, FALSE);
+	
+	/* Add Finish Page */
+	gpage = glade_gnome_druid_add_page (gdruid, TRUE);
+	glade_widget_property_set (gpage, "position", GNOME_EDGE_FINISH);
+}
+
+static gboolean
+glade_gnome_druid_page_cb (GnomeDruidPage *druidpage,
+			   GtkWidget *widget,
+			   gpointer user_data)
+{
+	GnomeDruid *druid = GNOME_DRUID (widget);
+	GList *children, *l;
+	gboolean next = TRUE, back = TRUE;
+
+	children = l = gtk_container_get_children (GTK_CONTAINER (druid));
+	while (l)
+	{
+		if (druidpage == l->data) break;
+		l = l->next;
+	}
+	
+	if (GPOINTER_TO_INT (user_data))
+	{
+		if (l->next)
+		{
+			gnome_druid_set_page (druid, (GnomeDruidPage *) l->next->data);
+			next = l->next->next != NULL;
+		}
+	}
+	else
+	{
+		if (l->prev)
+		{
+			gnome_druid_set_page (druid, (GnomeDruidPage *) l->prev->data);
+			back = l->prev->prev != NULL;
+		}
+	}
+	
+	g_list_free (children);
+
+	gnome_druid_set_buttons_sensitive (druid, back, next, TRUE, TRUE);
+	
+	return TRUE;
+}
+
+void
+glade_gnome_druid_add_child (GladeWidgetAdaptor  *adaptor,
+			     GObject             *container, 
+			     GObject             *child)
+{
+	g_return_if_fail (GNOME_IS_DRUID_PAGE (child));
+
+	/*
+	  Disconnect handlers just in case this child was already added
+	  in another druid.
+	 */
+	g_signal_handlers_disconnect_matched (child, G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
+					      glade_gnome_druid_page_cb, NULL);
+
+	gnome_druid_append_page (GNOME_DRUID (container), GNOME_DRUID_PAGE (child));
+	
+	g_signal_connect (child, "next", G_CALLBACK (glade_gnome_druid_page_cb),
+					GINT_TO_POINTER (TRUE));
+	g_signal_connect (child, "back", G_CALLBACK (glade_gnome_druid_page_cb),
+					GINT_TO_POINTER (FALSE));	
+}
+
+void
+glade_gnome_druid_remove_child (GladeWidgetAdaptor  *adaptor,
+				GObject             *container, 
+				GObject             *child)
+{
+	g_return_if_fail (GNOME_IS_DRUID_PAGE (child));
+
+	g_signal_handlers_disconnect_matched (child, G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
+					      glade_gnome_druid_page_cb, NULL);
+	
+	gtk_container_remove (GTK_CONTAINER (container), GTK_WIDGET (child));
+}
+
+static void
+glade_gnome_druid_insert_page (GnomeDruid *druid, GnomeDruidPage *page, gint pos)
+{
+	GList *children, *l;
+	GnomeDruidPage *back_page = NULL;
+	gint i = 0;
+	
+	children = l = gtk_container_get_children (GTK_CONTAINER (druid));
+	while (l)
+	{
+		i++;
+		if (i >= pos)
+		{
+			back_page = (GnomeDruidPage *) l->data;
+			break;
+		}
+		l = l->next;
+	}
+
+	gnome_druid_insert_page (druid, back_page, page);
+	
+	g_list_free (children);
+}
+
+static gint
+glade_gnome_druid_get_page_position (GnomeDruid *druid, GnomeDruidPage *page)
+{
+	GList *children, *l;
+	gint i = 0;
+	
+	children = l = gtk_container_get_children (GTK_CONTAINER (druid));
+	while (l)
+	{
+		GnomeDruidPage *current = (GnomeDruidPage *) l->data;
+		if (current == page) break;
+		i++;
+		l = l->next;
+	}
+	
+	g_list_free (children);
+	
+	return i;
+}
+
+void
+glade_gnome_druid_set_child_property (GladeWidgetAdaptor  *adaptor,
+				      GObject             *container,
+				      GObject             *child,
+				      const gchar         *property_name,
+				      GValue              *value)
+{
+	g_return_if_fail (GNOME_IS_DRUID_PAGE (child));
+	
+	if (strcmp (property_name, "position") == 0)
+	{
+		gint position = g_value_get_int (value);
+		
+		if (position < 0)
+		{
+			position = glade_gnome_druid_get_page_position
+						(GNOME_DRUID (container),
+						 GNOME_DRUID_PAGE (child));
+			g_value_set_int (value, position);
+		}
+		
+		g_object_ref (child);
+		gtk_container_remove (GTK_CONTAINER (container), GTK_WIDGET (child));
+		glade_gnome_druid_insert_page (GNOME_DRUID (container),
+					       GNOME_DRUID_PAGE (child),
+					       position);
+		g_object_unref (child);
+	}
+	else
+		/* Chain Up */
+		GWA_GET_CLASS
+			(GTK_TYPE_CONTAINER)->child_set_property (adaptor,
+								  container, 
+								  child,
+								  property_name,
+								  value);
+}
+
+void
+glade_gnome_druid_get_child_property (GladeWidgetAdaptor  *adaptor,
+				      GObject             *container,
+				      GObject             *child,
+				      const gchar         *property_name,
+				      GValue              *value)
+{
+	g_return_if_fail (GNOME_IS_DRUID_PAGE (child));
+	
+	if (strcmp (property_name, "position") == 0)
+		g_value_set_int (value, glade_gnome_druid_get_page_position (
+							GNOME_DRUID (container),
+							GNOME_DRUID_PAGE (child)));
+	else
+		/* Chain Up */
+		GWA_GET_CLASS
+			(GTK_TYPE_CONTAINER)->child_get_property (adaptor,
+								  container, 
+								  child,
+								  property_name,
+								  value);
+}
+
+/* GnomeDruidPageStandard */
+void
+glade_gnome_dps_post_create (GladeWidgetAdaptor  *adaptor,
+			     GObject             *object, 
+			     GladeCreateReason    reason)
+{
+	GladeWidget *gpage, *gvbox;
+	GObject *vbox;
+	
+	gpage = glade_widget_get_from_gobject (object);
+	vbox = G_OBJECT (GNOME_DRUID_PAGE_STANDARD (object)->vbox);
+	gvbox = glade_widget_adaptor_create_internal (gpage, vbox, "vbox",
+						      glade_widget_get_name (gpage),
+						      FALSE, GLADE_CREATE_LOAD);
+	
+	if (reason == GLADE_CREATE_USER)
+		glade_widget_property_set (gvbox, "size", 1);
+}
+
+GObject *
+glade_gnome_dps_get_internal_child (GladeWidgetAdaptor  *adaptor,
+				    GObject             *object, 
+				    const gchar         *name)
+{
+	GObject *child = NULL;
+	
+	if (strcmp (name, "vbox") == 0)
+		child = G_OBJECT (GNOME_DRUID_PAGE_STANDARD (object)->vbox);
+
+	return child;
+}
+
+GList *
+glade_gnome_dps_get_children (GladeWidgetAdaptor  *adaptor,
+			      GObject             *object)
+{
+	GnomeDruidPageStandard *page = GNOME_DRUID_PAGE_STANDARD (object);
+	GList *list = NULL;
+	
+	if (page->vbox) list = g_list_append (list, G_OBJECT (page->vbox));
+		
+	return list;
+}
+
+static void
+glade_gnome_dps_set_color_common (GObject      *object,
+				  const gchar  *property_name,
+				  const GValue *value)
+{
+	GladeProperty *prop;
+	const gchar *color_str;
+	GValue *color;
+	
+	if ((color_str = g_value_get_string (value)) == NULL) return;
+
+	prop = glade_widget_get_property (glade_widget_get_from_gobject (object),
+					  property_name);
+	
+	color = glade_property_class_make_gvalue_from_string (prop->klass,
+							      color_str, NULL, NULL);
+	if (color) glade_property_set_value (prop, color);
+}
+
+void
+glade_gnome_dps_set_property (GladeWidgetAdaptor *adaptor,
+			      GObject            *object,
+			      const gchar        *id,
+			      const GValue       *value)
+{
+
+	if (!strcmp (id, "background"))
+		glade_gnome_dps_set_color_common (object, "background-gdk", value);
+	else if (!strcmp (id, "contents-background"))
+		glade_gnome_dps_set_color_common (object, "contents-background-gdk", value);
+	else if (!strcmp (id, "logo-background"))
+		glade_gnome_dps_set_color_common (object, "logo-background-gdk", value);
+	else if (!strcmp (id, "title-foreground"))
+		glade_gnome_dps_set_color_common (object, "title-foreground-gdk", value);
+
+
+	else if (!strcmp (id, "background-gdk")  || 
+		 !strcmp (id, "title-foreground-gdk") ||
+		 !strcmp (id, "logo-background-gdk") ||
+		 !strcmp (id, "contents-background-gdk"))
+		{
+			/* XXX Ignore these they crash */
+		}
+	else
+		/* Skip GNOME_TYPE_DRUID_PAGE since we didnt register an
+		 * adaptor for that abstract class.
+		 */
+		GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor,
+								  object,
+								  id, value);
+}
+
+
+/* GnomeDruidPageEdge */
+static GType
+glade_gnome_dpe_position_get_type (void)
+{
+	static GType etype = 0;
+	if (etype == 0) {
+		static const GEnumValue values[] = {
+			{ GNOME_EDGE_START, "GNOME_EDGE_START", "Edge Start"},
+			{ GNOME_EDGE_FINISH, "GNOME_EDGE_FINISH", "Edge Finish"},
+			{ GNOME_EDGE_OTHER, "GNOME_EDGE_OTHER", "Edge Other"},
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static ("GladeGnomeDruidPagePosition", values);
+	}
+	return etype;
+}
+
+GParamSpec *
+glade_gnome_dpe_position_spec (void)
+{
+	return g_param_spec_enum ("position", _("Position"), 
+				  _("The position in the druid"),
+				  glade_gnome_dpe_position_get_type (),
+				  GNOME_EDGE_OTHER, G_PARAM_READWRITE);
+}
+
+void
+glade_gnome_dpe_set_property (GladeWidgetAdaptor *adaptor,
+			      GObject            *object,
+			      const gchar        *id,
+			      const GValue       *value)
+
+{
+	GnomeDruidPageEdge *page = GNOME_DRUID_PAGE_EDGE (object);
+	const gchar *text = NULL;
+	GObject *pixbuf = NULL;
+	GdkColor *color = NULL;
+	
+	if (G_VALUE_HOLDS (value, G_TYPE_STRING))
+		text = g_value_get_string (value);
+	else if (G_VALUE_HOLDS (value, GDK_TYPE_PIXBUF))
+		pixbuf = g_value_get_object (value);
+	else if (G_VALUE_HOLDS (value, GDK_TYPE_COLOR))
+		color = (GdkColor *) g_value_get_boxed (value);
+	
+	if (!strcmp (id, "title"))
+	{
+		if (text) gnome_druid_page_edge_set_title (page, text);
+	}
+	else if (!strcmp (id, "text"))
+	{
+		if (text) gnome_druid_page_edge_set_text (page, text);
+	}
+	else if (!strcmp (id, "title-foreground"))
+	{
+		if (color) gnome_druid_page_edge_set_title_color (page, color);
+	}
+	else if (!strcmp (id, "text-foreground"))
+	{
+		if (color) gnome_druid_page_edge_set_text_color (page, color);
+	}
+	else if (!strcmp (id, "background"))
+	{
+		if (color) gnome_druid_page_edge_set_bg_color (page, color);
+	}
+	else if (!strcmp (id, "contents-background"))
+	{
+		if (color) gnome_druid_page_edge_set_textbox_color (page, color);
+	}
+	else if (!strcmp (id, "logo-background"))
+	{
+		if (color) gnome_druid_page_edge_set_logo_bg_color (page, color);
+	}
+	else if (!strcmp (id, "logo"))
+		gnome_druid_page_edge_set_logo (page, GDK_PIXBUF (pixbuf));
+	else if (!strcmp (id, "watermark"))
+		gnome_druid_page_edge_set_watermark (page, GDK_PIXBUF (pixbuf));
+	else if (!strcmp (id, "top-watermark"))
+		gnome_druid_page_edge_set_top_watermark (page, GDK_PIXBUF (pixbuf));
+	else if (!strcmp (id, "position"));
+	else
+		/* Skip GNOME_TYPE_DRUID_PAGE since we didnt register an
+		 * adaptor for that abstract class.
+		 */
+		GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor,
+								  object,
+								  id, value);
+}
+
+/* GnomeIconEntry */
+void
+glade_gnome_icon_entry_set_property (GladeWidgetAdaptor *adaptor,
+				     GObject            *object,
+				     const gchar        *id,
+				     const GValue       *value)
+{
+	if (!strcmp (id, "max-saved"))
+		gnome_icon_entry_set_max_saved (GNOME_ICON_ENTRY (object),
+						g_value_get_uint (value));
+	else
+		GWA_GET_CLASS (GTK_TYPE_VBOX)->set_property (adaptor,
+							     object,
+							     id, value);
+}
+
+/* GnomeCanvas */
+typedef enum 
+{
+	CANVAS_X1,
+	CANVAS_Y1,
+	CANVAS_X2,
+	CANVAS_Y2
+}GnomeCanvasCoordinate;
+
+static void
+glade_gnome_canvas_set_coordinate_common (GObject               *object,
+					  const GValue          *value,
+					  GnomeCanvasCoordinate  coordinate)
+{
+	gdouble x1, y1, x2, y2;
+	
+	gnome_canvas_get_scroll_region  (GNOME_CANVAS (object),
+					 &x1, &y1, &x2, &y2);
+
+	switch (coordinate)
+	{
+		case CANVAS_X1:
+			x1 = g_value_get_float (value);
+		break;
+		case CANVAS_Y1:
+			y1 = g_value_get_float (value);
+		break;
+		case CANVAS_X2:
+			x2 = g_value_get_float (value);
+		break;
+		case CANVAS_Y2:
+			y2 = g_value_get_float (value);
+		break;
+	}
+	
+	gnome_canvas_set_scroll_region  (GNOME_CANVAS (object), x1, y1, x2, y2);
+}
+
+void
+glade_gnome_canvas_set_property (GladeWidgetAdaptor *adaptor,
+				 GObject            *object,
+				 const gchar        *id,
+				 const GValue       *value)
+{
+	if (!strcmp (id, "pixels-per-unit"))
+		gnome_canvas_set_pixels_per_unit (GNOME_CANVAS (object),
+						  g_value_get_float (value));
+	else if (!strcmp (id, "scroll-x1"))
+		glade_gnome_canvas_set_coordinate_common (object, value, CANVAS_X1);
+	else if (!strcmp (id, "scroll-x2"))
+		glade_gnome_canvas_set_coordinate_common (object, value, CANVAS_X2);
+	else if (!strcmp (id, "scroll-y1"))
+		glade_gnome_canvas_set_coordinate_common (object, value, CANVAS_Y1);
+	else if (!strcmp (id, "scroll-y2"))
+		glade_gnome_canvas_set_coordinate_common (object, value, CANVAS_Y2);
+	else
+		GWA_GET_CLASS (GTK_TYPE_LAYOUT)->set_property (adaptor,
+							       object,
+							       id, value);
+}
+
+/* GnomeDialog */
+static void
+glade_gnome_dialog_add_button (GladeWidget *gaction_area,
+			       GObject *action_area,
+			       const gchar *stock)
+{
+	GladeProject *project = glade_widget_get_project (gaction_area);
+	static GladeWidgetAdaptor *button_adaptor = NULL;
+	GladeWidget *gbutton;
+	GObject *button;
+	GEnumClass *eclass;
+	GEnumValue *eval;
+
+	if (button_adaptor == NULL)
+		button_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_BUTTON);
+		
+	gbutton = glade_widget_adaptor_create_widget (button_adaptor, FALSE,
+						      "parent", gaction_area, 
+						      "project", project, FALSE);
+	
+	eclass = g_type_class_ref (glade_standard_stock_get_type ());
+	if ((eval = g_enum_get_value_by_nick (eclass, stock)) != NULL)
+	{
+		glade_widget_property_set (gbutton, "use-stock", TRUE);
+		glade_widget_property_set (gbutton, "stock", eval->value);
+	}
+	g_type_class_unref (eclass);
+	
+	button = glade_widget_get_object (gbutton);
+	
+	glade_widget_adaptor_add (glade_widget_get_adaptor (gaction_area),
+				  action_area, button);
+}
+
+void
+glade_gnome_dialog_post_create (GladeWidgetAdaptor  *adaptor,
+				GObject             *object, 
+				GladeCreateReason    reason)
+{
+	GladeWidget *gdialog = glade_widget_get_from_gobject (object);
+	GnomeDialog *dialog = GNOME_DIALOG (object);
+	GladeWidget *gvbox, *gaction_area;
+	GtkWidget *separator;
+	
+	/* Ignore close signal */
+	g_signal_connect (object, "close", G_CALLBACK (gtk_true), NULL);
+			
+	if (GNOME_IS_PROPERTY_BOX (object))
+	{
+		GnomePropertyBox *pbox = GNOME_PROPERTY_BOX (object);
+		
+		gaction_area = glade_widget_adaptor_create_internal
+			(gdialog, G_OBJECT (pbox->notebook), "notebook",
+			 glade_widget_get_name (gdialog),
+			 FALSE, GLADE_CREATE_LOAD);
+		if (reason == GLADE_CREATE_USER)
+			glade_widget_property_set (gaction_area, "pages", 3);
+		return;
+	}
+	
+	/* vbox internal child */
+	gvbox = glade_widget_adaptor_create_internal
+		(gdialog, G_OBJECT (dialog->vbox), "vbox",
+		 glade_widget_get_name (gdialog),
+		 FALSE, GLADE_CREATE_LOAD);
+	
+	glade_widget_property_set (gvbox, "size", 0);
+	
+	/* action area */
+	dialog->action_area = gtk_hbutton_box_new ();
+	gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog->action_area),
+				   GTK_BUTTONBOX_END);
+
+	gtk_box_pack_end (GTK_BOX (dialog->vbox), dialog->action_area,
+			   FALSE, TRUE, 0);
+	gtk_widget_show (dialog->action_area);
+
+	/* separator */
+	separator = gtk_hseparator_new ();
+	gtk_box_pack_end (GTK_BOX (dialog->vbox), separator,
+			  FALSE, TRUE, GNOME_PAD_SMALL);
+	gtk_widget_show (separator);
+			
+	/* action area internal child */
+	gaction_area = 
+		glade_widget_adaptor_create_internal (gvbox,
+						      G_OBJECT (dialog->action_area),
+						      "action_area",
+						      glade_widget_get_name (gvbox),
+						      FALSE, GLADE_CREATE_LOAD);
+	
+	glade_widget_property_set (gaction_area, "size", 0);
+	
+	if (reason != GLADE_CREATE_USER) return;
+	
+	/* Add a couple of buttons */
+	if (GNOME_IS_MESSAGE_BOX (object))
+	{
+		glade_gnome_dialog_add_button (gaction_area,
+					       G_OBJECT (dialog->action_area),
+					       "gtk-ok");
+		glade_widget_property_set (gaction_area, "size", 1);
+	}
+	else
+	{
+		glade_gnome_dialog_add_button (gaction_area,
+					       G_OBJECT (dialog->action_area),
+					       "gtk-cancel");
+		glade_gnome_dialog_add_button (gaction_area,
+					       G_OBJECT (dialog->action_area),
+					       "gtk-ok");
+		glade_widget_property_set (gaction_area, "size", 2);
+		glade_widget_property_set (gvbox, "size", 3);
+	}
+}
+
+GObject *
+glade_gnome_dialog_get_internal_child (GladeWidgetAdaptor  *adaptor,
+				       GObject             *object, 
+				       const gchar         *name)
+{
+	GObject *child = NULL;
+	
+	if (strcmp (name, "vbox") == 0)
+		child = G_OBJECT (GNOME_DIALOG (object)->vbox);
+	else if (GNOME_IS_PROPERTY_BOX (object) && strcmp (name, "notebook") == 0)
+		child = G_OBJECT (GNOME_PROPERTY_BOX (object)->notebook);
+
+	return child;
+}
+
+GList *
+glade_gnome_dialog_get_children (GladeWidgetAdaptor  *adaptor,
+				 GObject             *object)
+{
+	GnomeDialog *dialog = GNOME_DIALOG (object);
+	GList *list = NULL;
+
+	if (dialog->vbox) list = g_list_append (list, G_OBJECT (dialog->vbox));
+	
+	if (GNOME_IS_PROPERTY_BOX (object))
+	{
+		GnomePropertyBox *pbox = GNOME_PROPERTY_BOX (object);
+		if (pbox->notebook)
+			list = g_list_append (list, G_OBJECT (pbox->notebook));
+	}
+
+	return list;
+}
+
+/* GnomeAbout */
+void
+glade_gnome_about_dialog_post_create (GladeWidgetAdaptor  *adaptor,
+				      GObject             *object, 
+				      GladeCreateReason    reason)
+{
+	gtk_dialog_set_response_sensitive (GTK_DIALOG (object), GTK_RESPONSE_CLOSE, FALSE);	
+}
+
+void
+glade_gnome_about_dialog_set_property (GladeWidgetAdaptor *adaptor,
+				       GObject            *object,
+				       const gchar        *id,
+				       const GValue       *value)
+{
+	if (!strcmp (id, "name") ||
+	    !strcmp (id, "version"))
+	{
+		if (g_value_get_string (value))
+			g_object_set_property (object, id, value);
+	}
+	else
+		GWA_GET_CLASS (GTK_TYPE_DIALOG)->set_property (adaptor,
+							       object,
+							       id, value);
+}
+
+/* GnomeMessageBox */
+typedef enum {
+	GLADE_GNOME_MESSAGE_BOX_INFO,
+	GLADE_GNOME_MESSAGE_BOX_WARNING,
+	GLADE_GNOME_MESSAGE_BOX_ERROR,
+	GLADE_GNOME_MESSAGE_BOX_QUESTION,
+	GLADE_GNOME_MESSAGE_BOX_GENERIC
+}GladeGnomeMessageBoxType;
+	
+static GType
+glade_gnome_message_box_type_get_type (void)
+{
+	static GType etype = 0;
+	if (etype == 0) {
+		static const GEnumValue values[] = {
+			{ GLADE_GNOME_MESSAGE_BOX_INFO, "GNOME_MESSAGE_BOX_INFO", "info"},
+			{ GLADE_GNOME_MESSAGE_BOX_WARNING, "GNOME_MESSAGE_BOX_WARNING", "warning"},
+			{ GLADE_GNOME_MESSAGE_BOX_ERROR, "GNOME_MESSAGE_BOX_ERROR", "error"},
+			{ GLADE_GNOME_MESSAGE_BOX_QUESTION, "GNOME_MESSAGE_BOX_QUESTION", "question"},
+			{ GLADE_GNOME_MESSAGE_BOX_GENERIC, "GNOME_MESSAGE_BOX_GENERIC", "generic"},
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static ("GladeGnomeMessageBoxType", values);
+	}
+	return etype;
+}
+
+GParamSpec *
+glade_gnome_message_box_type_spec (void)
+{
+	return g_param_spec_enum ("message_box_type", _("Message box type"), 
+				  _("The type of the message box"),
+				  glade_gnome_message_box_type_get_type (),
+				  0, G_PARAM_READWRITE);
+}
+
+static gchar *
+glade_gnome_message_get_str (GladeGnomeMessageBoxType val)
+{
+	switch (val)
+	{
+		case GLADE_GNOME_MESSAGE_BOX_INFO:
+			return "info";
+		case GLADE_GNOME_MESSAGE_BOX_WARNING:
+			return "warning";
+		case GLADE_GNOME_MESSAGE_BOX_ERROR:
+			return "error";
+		case GLADE_GNOME_MESSAGE_BOX_QUESTION:
+			return "question";
+		case GLADE_GNOME_MESSAGE_BOX_GENERIC:
+			return "generic";
+	}
+	return "";
+}
+
+static void
+glade_gnome_message_clean (GObject *object)
+{
+	GtkContainer *container = GTK_CONTAINER (GNOME_DIALOG (object)->vbox);
+	GList *children, *l;
+
+	children = gtk_container_get_children (container);
+	
+	for (l = children; l; l = l->next)
+	{
+		GtkWidget *child = (GtkWidget *) l->data;
+		
+		if (GTK_IS_HBOX (child))
+		{
+			gtk_container_remove (container, child);
+			break;
+		}
+	}
+	
+	g_list_free (children);
+}
+	
+static void
+glade_gnome_message_box_set_type (GObject *object, const GValue *value)
+{
+	gchar *message, *type;
+	
+	glade_gnome_message_clean (object);
+	glade_widget_property_get (glade_widget_get_from_gobject (object),
+				   "message", &message);
+	type = glade_gnome_message_get_str (g_value_get_enum (value));
+	gnome_message_box_construct (GNOME_MESSAGE_BOX (object),
+				     message, type, NULL); 
+}
+
+static void
+glade_gnome_message_box_set_message (GObject *object, const GValue *value)
+{
+	GladeGnomeMessageBoxType type;
+	
+	glade_gnome_message_clean (object);
+	glade_widget_property_get (glade_widget_get_from_gobject (object),
+				   "message-box-type", &type);
+	gnome_message_box_construct (GNOME_MESSAGE_BOX (object),
+				     g_value_get_string (value),
+				     glade_gnome_message_get_str (type),
+				     NULL);	
+}
+
+void
+glade_gnome_message_box_set_property (GladeWidgetAdaptor *adaptor,
+				      GObject            *object,
+				      const gchar        *id,
+				      const GValue       *value)
+{
+	if (!strcmp (id, "message-box-type"))
+		glade_gnome_message_box_set_type (object, value);
+	else if (!strcmp (id, "message"))
+		glade_gnome_message_box_set_message (object, value);
+	else
+		GWA_GET_CLASS (GNOME_TYPE_DIALOG)->set_property (adaptor,
+								 object,
+								 id, value);
+}
+
+/* GnomeEntry & GnomeFileEntry */
+/* GnomeFileEntry is not derived from GnomeEntry... but hey!!! they should :) */
+GObject *
+glade_gnome_entry_get_internal_child (GladeWidgetAdaptor  *adaptor,
+				      GObject             *object, 
+				      const gchar         *name)
+{
+	GObject *child = NULL;
+
+	if (strcmp (name, "entry") == 0)
+	{
+		if (GNOME_IS_ENTRY (object))
+			child = G_OBJECT (gnome_entry_gtk_entry (GNOME_ENTRY (object)));
+		else
+			child = G_OBJECT (gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (object)));
+	}
+
+	return child;
+}
+
+void
+glade_gnome_entry_post_create (GladeWidgetAdaptor  *adaptor,
+			       GObject             *object, 
+			       GladeCreateReason    reason)
+{
+	GladeWidget *gentry;
+	GObject *child;
+
+	child = glade_gnome_entry_get_internal_child (adaptor, object, "entry");
+	
+	gentry = glade_widget_get_from_gobject (object);
+	glade_widget_adaptor_create_internal (gentry,
+					      child, "entry",
+					      glade_widget_get_name (gentry),
+					      FALSE, reason);
+}
+
+GList *
+glade_gnome_entry_get_children (GladeWidgetAdaptor  *adaptor,
+				GObject             *object)
+{
+	GList *list = NULL;
+	GtkWidget *entry;
+	
+	if (GNOME_IS_ENTRY (object))
+		entry = gnome_entry_gtk_entry (GNOME_ENTRY (object));
+	else
+		entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (object));
+	
+	if (entry) list = g_list_append (list, G_OBJECT (entry));
+	
+	return list;
+}
+
+void
+glade_gnome_entry_set_property (GladeWidgetAdaptor *adaptor,
+				GObject            *object,
+				const gchar        *id,
+				const GValue       *value)
+{
+	if (!strcmp (id, "max-saved"))
+		gnome_entry_set_max_saved (GNOME_ENTRY (object), g_value_get_int (value));
+	else
+		GWA_GET_CLASS (GTK_TYPE_COMBO)->set_property (adaptor,
+							      object,
+							      id, value);
+}
+
+void
+glade_gnome_file_entry_set_property (GladeWidgetAdaptor *adaptor,
+				     GObject            *object,
+				     const gchar        *id,
+				     const GValue       *value)
+{
+	GtkWidget *entry;
+
+	if (!strcmp (id, "max-saved"))
+	{
+		entry = gnome_file_entry_gnome_entry (GNOME_FILE_ENTRY (object));
+		gnome_entry_set_max_saved (GNOME_ENTRY (entry), g_value_get_int (value));
+	}
+	else
+		GWA_GET_CLASS (GTK_TYPE_VBOX)->set_property (adaptor,
+							     object,
+							     id, value);
+}
+
+/* GnomeFontPicker */
+static void
+glade_gnome_font_picker_set_mode (GObject *object, const GValue *value)
+{
+	GladeWidget *ggfp, *gchild;
+	GnomeFontPicker *gfp;
+	GnomeFontPickerMode mode;
+	GObject *child;
+	
+	mode = g_value_get_enum (value);
+	if (mode == GNOME_FONT_PICKER_MODE_UNKNOWN) return;
+	
+	gfp = GNOME_FONT_PICKER (object);
+	child = G_OBJECT (gnome_font_picker_uw_get_widget (gfp));
+	if (child && (gchild = glade_widget_get_from_gobject (child)))
+		glade_project_remove_object (glade_widget_get_project (gchild),
+					     child);
+	
+	gnome_font_picker_set_mode (gfp, mode);
+
+	ggfp = glade_widget_get_from_gobject (object);
+	switch (mode)
+	{
+		const gchar *reason;
+		case GNOME_FONT_PICKER_MODE_FONT_INFO:
+			glade_widget_property_set_sensitive (ggfp, "show-size", TRUE, NULL);
+			glade_widget_property_set_sensitive (ggfp, "use-font-in-label", TRUE, NULL);
+			glade_widget_property_set_sensitive (ggfp, "label-font-size", TRUE, NULL);
+		break;
+		case GNOME_FONT_PICKER_MODE_USER_WIDGET:
+			gnome_font_picker_uw_set_widget (gfp, glade_placeholder_new ());
+		case GNOME_FONT_PICKER_MODE_PIXMAP:
+			reason = _("This property is valid only in font information mode");
+			glade_widget_property_set_sensitive (ggfp, "show-size", FALSE, reason);
+			glade_widget_property_set_sensitive (ggfp, "use-font-in-label", FALSE, reason);
+			glade_widget_property_set_sensitive (ggfp, "label-font-size", FALSE, reason);
+		default: break;
+	}
+}
+
+void
+glade_gnome_font_picker_set_property (GladeWidgetAdaptor *adaptor,
+				      GObject            *object,
+				      const gchar        *id,
+				      const GValue       *value)
+{
+	if (!strcmp (id, "mode"))
+		glade_gnome_font_picker_set_mode (object, value);
+	else
+		GWA_GET_CLASS (GTK_TYPE_BUTTON)->set_property (adaptor,
+							       object,
+							       id, value);
+}
+
+GList *
+glade_gnome_font_picker_get_children (GladeWidgetAdaptor  *adaptor,
+				      GObject             *object)
+{
+	GtkWidget *child;
+		
+	if ((child = gnome_font_picker_uw_get_widget (GNOME_FONT_PICKER (object))))
+		return g_list_append (NULL, G_OBJECT (child));
+	else
+		return NULL;
+}
+
+void
+glade_gnome_font_picker_add_child (GladeWidgetAdaptor  *adaptor,
+				   GtkWidget           *container, 
+				   GtkWidget           *child)
+{
+	gnome_font_picker_uw_set_widget (GNOME_FONT_PICKER (container), child);	
+}
+
+void
+glade_gnome_font_picker_remove_child (GladeWidgetAdaptor  *adaptor,
+				      GtkWidget           *container, 
+				      GtkWidget           *child)
+{
+	gnome_font_picker_uw_set_widget (GNOME_FONT_PICKER (container), glade_placeholder_new ());
+}
+
+void
+glade_gnome_font_picker_replace_child (GladeWidgetAdaptor  *adaptor,
+				       GtkWidget           *container,
+				       GtkWidget           *current,
+				       GtkWidget           *new_widget)
+{
+	gnome_font_picker_uw_set_widget (GNOME_FONT_PICKER (container), new_widget);
+}
+
+/* GnomeIconList */
+void
+glade_gnome_icon_list_post_create (GladeWidgetAdaptor  *adaptor,
+				   GObject             *object, 
+				   GladeCreateReason    reason)
+{
+	/* Freeze the widget so we dont get the signals that cause a segfault */
+	gnome_icon_list_freeze (GNOME_ICON_LIST (object));
+}
+
+static GType
+glade_gnome_icon_list_selection_mode_get_type (void)
+{
+	static GType etype = 0;
+	if (etype == 0) {
+		static const GEnumValue values[] = {
+			{ GTK_SELECTION_SINGLE, "GTK_SELECTION_SINGLE", "Single"},
+			{ GTK_SELECTION_BROWSE, "GTK_SELECTION_BROWSE", "Browse"},
+			{ GTK_SELECTION_MULTIPLE, "GTK_SELECTION_MULTIPLE", "Multiple"},
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static ("GladeGnomeIconListSelectionMode", values);
+	}
+	return etype;
+}
+
+GParamSpec *
+glade_gnome_icon_list_selection_mode_spec (void)
+{
+	return g_param_spec_enum ("selection_mode", _("Selection Mode"), 
+				  _("Choose the Selection Mode"),
+				  glade_gnome_icon_list_selection_mode_get_type (),
+				  GTK_SELECTION_SINGLE, G_PARAM_READWRITE);
+}
+
+void
+glade_gnome_icon_list_set_property (GladeWidgetAdaptor *adaptor,
+				    GObject            *object,
+				    const gchar        *id,
+				    const GValue       *value)
+{
+	if (!strcmp (id, "selection-mode"))
+		gnome_icon_list_set_selection_mode (GNOME_ICON_LIST (object),
+						    g_value_get_enum (value));
+	else if (!strcmp (id, "icon-width"))
+		gnome_icon_list_set_icon_width (GNOME_ICON_LIST (object),
+						g_value_get_int (value));
+	else if (!strcmp (id, "row-spacing"))
+		gnome_icon_list_set_row_spacing (GNOME_ICON_LIST (object),
+						 g_value_get_int (value));	
+	else if (!strcmp (id, "column-spacing"))
+		gnome_icon_list_set_col_spacing (GNOME_ICON_LIST (object),
+						 g_value_get_int (value));
+	else if (!strcmp (id, "text-spacing"))
+		gnome_icon_list_set_text_spacing (GNOME_ICON_LIST (object),
+						  g_value_get_int (value));
+	else
+		GWA_GET_CLASS (GNOME_TYPE_CANVAS)->set_property (adaptor,
+								 object,
+								 id, value);
+}
+
+/* GnomePixmap */
+static gint
+glade_gnome_pixmap_set_filename_common (GObject *object)
+{
+	GladeWidget *gp;
+	gint width, height;
+	
+	gp = glade_widget_get_from_gobject (object);
+	glade_widget_property_get (gp, "scaled-width", &width);
+	glade_widget_property_get (gp, "scaled-height", &height);
+	
+	if (width && height)
+	{
+		GladeProperty *property = glade_widget_get_property (gp, "filename");
+		gchar *file = 
+			glade_property_class_make_string_from_gvalue
+			(property->klass, property->value,
+			 glade_project_get_format (gp->project));
+
+		if (file)
+		{
+			gnome_pixmap_load_file_at_size (GNOME_PIXMAP (object),
+							file, width, height);
+			g_free (file);
+			return 0;
+		}
+	}
+		
+	return -1;
+}
+
+static void
+glade_gnome_pixmap_set_scaled_common (GObject *object,
+				      const GValue *value,
+				      const gchar *property)
+{
+	if (glade_gnome_pixmap_set_filename_common (object))
+	{
+		GladeWidget *gp = glade_widget_get_from_gobject (object);
+		gint val2, val = g_value_get_int (value);
+		GObject *pixbuf;
+		
+		glade_widget_property_get (gp, "filename", &pixbuf);
+		glade_widget_property_set (gp, "filename", pixbuf);
+		
+		if (val)
+		{
+			glade_widget_property_get (gp, property, &val2);
+			if (val2 == 0)
+				glade_widget_property_set (gp, property, val);
+		}
+		else
+			glade_widget_property_set (gp, property, 0);
+	}
+}
+
+void
+glade_gnome_pixmap_set_property (GladeWidgetAdaptor *adaptor,
+				 GObject            *object,
+				 const gchar        *id,
+				 const GValue       *value)
+{
+	if (!strcmp (id, "filename"))
+	{
+		if (glade_gnome_pixmap_set_filename_common (object))
+			gtk_image_set_from_pixbuf (GTK_IMAGE(object),
+						   GDK_PIXBUF (g_value_get_object (value)));
+	}
+	else if (!strcmp (id, "scaled-width") ||
+		 !strcmp (id, "scaled-height"))
+		glade_gnome_pixmap_set_scaled_common (object, value, id);
+	else
+		GWA_GET_CLASS (GTK_TYPE_IMAGE)->set_property (adaptor,
+							      object,
+							      id, value);
+}
+
+
+/*
+ BBBB     OOOO    NN   NN    OOOO    BBBB     OOOO
+ BB  B   OO  OO   NNN  NN   OO  OO   BB  B   OO  OO
+ BBBB   OO    OO  NN N NN  OO    OO  BBBB   OO    OO
+ BB  B   OO  OO   NN  NNN   OO  OO   BB  B   OO  OO
+ BBBB     OOOO    NN   NN    OOOO    BBBB     OOOO
+*/
+
+/* GladeGnomeBonoboDockPlacement */
+static GType
+glade_gnome_bonobo_dock_placement_get_type (void)
+{
+	static GType etype = 0;
+	if (etype == 0) {
+		static const GEnumValue values[] = {
+			{ BONOBO_DOCK_TOP, "BONOBO_DOCK_TOP", "Top"},
+			{ BONOBO_DOCK_RIGHT, "BONOBO_DOCK_RIGHT", "Right"},
+			{ BONOBO_DOCK_BOTTOM, "BONOBO_DOCK_BOTTOM", "Bottom"},
+			{ BONOBO_DOCK_LEFT, "BONOBO_DOCK_LEFT", "Left"},
+			{ BONOBO_DOCK_FLOATING, "BONOBO_DOCK_FLOATING", "Floating"},
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static ("GladeGnomeBonoboDockPlacement", values);
+	}
+	return etype;
+}
+
+GParamSpec *
+glade_gnome_bonobo_dock_placement_spec (void)
+{
+	return g_param_spec_enum ("placement", _("Placement"), 
+				  _("Choose the BonoboDockPlacement type"),
+				  glade_gnome_bonobo_dock_placement_get_type (),
+				  0, G_PARAM_READWRITE);
+}
+
+/* GladeGnomeBonoboDockItemBehavior */
+static GType
+glade_gnome_bonobo_dock_item_behavior_get_type (void)
+{
+	static GType etype = 0;
+	if (etype == 0) {
+		static const GFlagsValue values[] = {
+			/*BONOBO_DOCK_ITEM_BEH_NORMAL is 0 so we do not include it. */
+			{ BONOBO_DOCK_ITEM_BEH_EXCLUSIVE, "BONOBO_DOCK_ITEM_BEH_EXCLUSIVE", "Exclusive"},
+			{ BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING, "BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING", "Never Floating"},
+			{ BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL, "BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL", "Never Vertical"},
+			{ BONOBO_DOCK_ITEM_BEH_NEVER_HORIZONTAL, "BONOBO_DOCK_ITEM_BEH_NEVER_HORIZONTAL", "Never Horizontal"},
+			{ BONOBO_DOCK_ITEM_BEH_LOCKED, "BONOBO_DOCK_ITEM_BEH_LOCKED", "Locked"},
+			{ 0, NULL, NULL }
+		};
+		etype = g_flags_register_static ("GladeGnomeBonoboDockItemBehavior", values);
+	}
+	return etype;
+}
+
+GParamSpec *
+glade_gnome_bonobo_dock_item_behavior_spec (void)
+{
+	return g_param_spec_flags ("behavior", _("Behavior"), 
+				  _("Choose the BonoboDockItemBehavior type"),
+				  glade_gnome_bonobo_dock_item_behavior_get_type (),
+				  0, G_PARAM_READWRITE);
+}
+
+/* GtkPackType */
+GParamSpec *
+glade_gnome_gtk_pack_type_spec (void)
+{
+	return g_param_spec_enum ("pack_type", _("Pack Type"), 
+				  _("Choose the Pack Type"),
+				  g_type_from_name ("GtkPackType"),
+				  0, G_PARAM_READWRITE);
+}
+
+/* BonoboDockBand convenience functions */
+static BonoboDockBand *
+glade_gnome_bdb_get_band (GList *bands, GtkWidget *widget)
+{
+	GList *l;
+	
+	for (l = bands; l; l = l->next)
+	{
+		BonoboDockBand *band = (BonoboDockBand *) l->data;
+		GList *cl;
+		for (cl = band->children; cl; cl = cl->next)
+		{
+			BonoboDockBandChild *child = (BonoboDockBandChild *) cl->data;
+			if (child->widget == widget) return band;
+		}
+	}
+	
+	return NULL;
+}
+
+static BonoboDockBand *
+glade_gnome_bd_get_band (BonoboDock *dock, GtkWidget *widget)
+{
+	BonoboDockBand *retval = NULL;
+	
+	if ((retval = glade_gnome_bdb_get_band (dock->top_bands, widget))    ||
+	    (retval = glade_gnome_bdb_get_band (dock->bottom_bands, widget)) ||
+	    (retval = glade_gnome_bdb_get_band (dock->right_bands, widget))  ||
+	    (retval = glade_gnome_bdb_get_band (dock->left_bands, widget)));
+	
+	return retval;
+}
+
+/* BonoboDock */
+void
+glade_gnome_bonobodock_add_child (GladeWidgetAdaptor  *adaptor,
+				  GObject             *object,
+				  GObject             *child)
+{
+	if (BONOBO_IS_DOCK_ITEM (child))
+		bonobo_dock_add_item (BONOBO_DOCK (object), BONOBO_DOCK_ITEM (child),
+				      0,0,0,0, TRUE);
+	else if (GTK_IS_WIDGET (child))
+		bonobo_dock_set_client_area (BONOBO_DOCK (object), GTK_WIDGET (child));
+}
+
+void
+glade_gnome_bonobodock_remove_child (GladeWidgetAdaptor  *adaptor,
+				     GObject             *object, 
+				     GObject             *child)
+{
+	BonoboDockBand *band;
+		
+	band = glade_gnome_bd_get_band (BONOBO_DOCK (object), GTK_WIDGET (child));
+	
+	gtk_container_remove (GTK_CONTAINER (band), GTK_WIDGET (child));
+}
+
+GList *
+glade_gnome_bonobodock_get_children (GladeWidgetAdaptor  *adaptor,
+				     GObject             *object)
+{
+	GList            *list = NULL, *l;
+	GtkWidget        *client_area;
+	BonoboDockLayout *layout;
+		
+	layout      = bonobo_dock_get_layout (BONOBO_DOCK (object));
+	client_area = bonobo_dock_get_client_area (BONOBO_DOCK (object));
+	
+	for (l = layout->items; l; l = l->next)
+	{
+		BonoboDockLayoutItem *li = (BonoboDockLayoutItem *) l->data;
+		list = g_list_prepend (list, li->item);
+	}
+
+	if (client_area) 
+		list = g_list_prepend (list, client_area);
+	
+	return g_list_reverse (list);
+}
+
+void
+glade_gnome_bonobodock_replace_child (GladeWidgetAdaptor  *adaptor,
+				      GtkWidget           *container,
+				      GtkWidget           *current,
+				      GtkWidget           *new_widget)
+{
+	bonobo_dock_set_client_area (BONOBO_DOCK (container), new_widget);
+}
+
+static gboolean
+glade_gnome_bonobodockitem_get_props (BonoboDock *doc,
+				      BonoboDockItem *item,
+				      BonoboDockPlacement *placement,
+				      guint *band_num,
+				      guint *band_position,
+				      guint *offset)
+{
+	BonoboDockLayout *layout = bonobo_dock_get_layout (doc);
+        GList *l;
+        
+        for (l = layout->items; l; l = l->next)
+        {
+                BonoboDockLayoutItem *li = (BonoboDockLayoutItem *) l->data;
+                if (li->item == item)
+		{
+			*placement = li->placement;
+			*band_num = li->position.docked.band_num;
+			*band_position = li->position.docked.band_position;
+			*offset = li->position.docked.offset;
+			
+			return TRUE;
+		}
+        }
+
+	g_warning ("Item not found in BonoboDock");
+	
+        return FALSE;
+}
+
+void
+glade_gnome_bonobodock_set_child_property (GladeWidgetAdaptor  *adaptor,
+					   GObject             *container,
+					   GObject             *child,
+					   const gchar         *property_name,
+					   GValue              *value)
+{
+	BonoboDock *dock;
+	BonoboDockItem *item;
+	BonoboDockPlacement placement;
+	guint band_num, band_position, offset;
+	BonoboDockBand *band;
+	GtkWidget *wchild;
+	gboolean new_band = FALSE;
+	
+	if (!BONOBO_IS_DOCK_ITEM (child))
+		/* Ignore packing properties of client area */
+		return;
+
+	dock = BONOBO_DOCK (container);
+	item = BONOBO_DOCK_ITEM (child);
+	
+	if (strcmp ("behavior", property_name) == 0)
+	{
+		bonobo_dock_item_set_behavior (item, g_value_get_flags (value));
+		return;
+	}
+	
+	wchild = GTK_WIDGET (child);
+	
+	if (glade_gnome_bonobodockitem_get_props (dock, item, &placement, &band_num,
+						  &band_position, &offset))
+	{
+		if (strcmp ("placement", property_name) == 0)
+			placement = g_value_get_enum (value);
+		else if (strcmp ("position", property_name) == 0)
+			band_position = g_value_get_int (value);
+		else if (strcmp ("band", property_name) == 0)
+			band_num = g_value_get_int (value);
+		else if (strcmp ("offset", property_name) == 0)
+			offset = g_value_get_int (value);
+		else
+		{
+			g_warning ("No BonoboDock set packing property support for '%s'.", property_name);
+			return;
+		}
+	
+		if ((band = glade_gnome_bd_get_band (dock, wchild)))
+		{
+			g_object_ref (child);
+			gtk_container_remove (GTK_CONTAINER (band), wchild);
+		
+			if (band->num_children == 0)
+			{
+				new_band = TRUE;
+				gtk_container_remove (GTK_CONTAINER (container),
+						      GTK_WIDGET(band));
+			}
+		
+			bonobo_dock_add_item (dock, item, placement, band_num, 
+					      band_position, offset, new_band);
+			bonobo_dock_item_set_behavior (item, item->behavior);
+			g_object_unref (child);
+		}
+		else
+			g_warning ("BonoboDockItem's band not found.\n");
+	}
+}
+
+void
+glade_gnome_bonobodock_get_child_property (GladeWidgetAdaptor  *adaptor,
+					   GObject             *container,
+					   GObject             *child,
+					   const gchar         *property_name,
+					   GValue              *value)
+{
+	BonoboDockPlacement placement;
+	guint band_num, band_position, offset;
+
+	if (!BONOBO_IS_DOCK_ITEM (child))
+		/* Ignore packing properties of client area, 
+		 *
+		 * FIXME: packing properties should actually be removed 
+		 * from client area children using glade_widget_remove_property();
+		 */
+		return;
+
+	if (strcmp ("behavior", property_name) == 0)
+	{
+		g_value_set_flags (value, BONOBO_DOCK_ITEM (child)->behavior);
+		return;
+	}
+	
+	if (glade_gnome_bonobodockitem_get_props (BONOBO_DOCK (container),
+						  BONOBO_DOCK_ITEM (child),
+						  &placement, &band_num,
+						  &band_position, &offset))
+	{	
+		if (strcmp ("placement", property_name) == 0)
+			g_value_set_enum (value, placement);
+		else if (strcmp ("position", property_name) == 0)
+			g_value_set_int (value, band_position);
+		else if (strcmp ("band", property_name) == 0)
+			g_value_set_int (value, band_num);
+		else if (strcmp ("offset", property_name) == 0)
+			g_value_set_int (value, offset);
+	}
+}
+
+void
+glade_gnome_bonobodock_set_property (GladeWidgetAdaptor *adaptor,
+				     GObject            *object,
+				     const gchar        *id,
+				     const GValue       *value)
+{
+	if (!strcmp (id, "allow-floating"))
+		bonobo_dock_allow_floating_items (BONOBO_DOCK (object),
+						  g_value_get_boolean (value));
+	else
+		GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor,
+								  object,
+								  id, value);
+}
diff --git a/plugins/gnome/gnome.xml.in b/plugins/gnome/gnome.xml.in
new file mode 100644
index 0000000..aca5586
--- /dev/null
+++ b/plugins/gnome/gnome.xml.in
@@ -0,0 +1,384 @@
+<glade-catalog name="gnome"
+               library="gladegnome"
+	       supports="libglade"
+               depends="gtk+"
+               domain="glade3"
+               book="libgnomeui">
+  <init-function>glade_gnomeui_init</init-function>
+  <glade-widget-classes>
+    <glade-widget-class name="GnomeApp" generic-name="app" _title="GNOME App" default-width="440" default-height="250">
+      <post-create-function>glade_gnome_app_post_create</post-create-function>
+      <get-internal-child-function>glade_gnome_app_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gnome_app_get_children</get-children-function>
+      <child-set-property-function>glade_gnome_app_set_child_property</child-set-property-function>
+      <child-get-property-function>glade_gnome_app_get_child_property</child-get-property-function>
+      <set-property-function>glade_gnome_app_set_property</set-property-function>
+
+      <properties>
+         <property id="has-statusbar" _name="StatusBar" save="False">
+	   <tooltip>If the window has a statusbar</tooltip>
+	   <spec>glade_standard_boolean_spec</spec>
+	 </property>
+         <property id="enable-layout-config" _name="Store Config">
+	   <tooltip>If the layout is saved and restored automatically</tooltip>
+	   <spec>glade_standard_boolean_spec</spec>
+	 </property>
+      </properties>
+      <packing-properties>
+        <property id="position" _name="Position">
+          <spec>glade_standard_int_spec</spec>
+	</property>
+        <property id="padding" _name="Padding">
+	  <spec>glade_standard_int_spec</spec>
+	</property>
+        <property id="expand" _name="Expand">
+	  <spec>glade_standard_boolean_spec</spec>
+	</property>
+        <property id="fill" _name="Fill">
+	  <spec>glade_standard_boolean_spec</spec>
+	</property>
+        <property id="pack-type">
+	  <spec>glade_gnome_gtk_pack_type_spec</spec>
+	</property>
+      </packing-properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeDruid" generic-name="druid" _title="GNOME Druid">
+      <post-create-function>glade_gnome_druid_post_create</post-create-function>
+      <add-child-function>glade_gnome_druid_add_child</add-child-function>
+      <remove-child-function>glade_gnome_druid_remove_child</remove-child-function>
+      <child-set-property-function>glade_gnome_druid_set_child_property</child-set-property-function>
+      <child-get-property-function>glade_gnome_druid_get_child_property</child-get-property-function>
+
+      <packing-properties>
+        <property id="position" _name="Position" default="-1" save="False">
+	  <spec>glade_standard_int_spec</spec>
+	</property>
+      </packing-properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeDruidPageEdge" generic-name="druidpageedge" _title="GNOME Druid Page Edge">
+      <set-property-function>glade_gnome_dpe_set_property</set-property-function>
+      <properties>
+	<property id="position" _name="Position">
+	  <spec>glade_gnome_dpe_position_spec</spec>
+	  <_tooltip>Used to pass around information about the position of a GnomeDruidPage within the overall GnomeDruid. This enables the correct "surrounding" content for the page to be drawn</_tooltip>
+          <displayable-values>
+            <value id="GNOME_EDGE_START" _name="Start"/>
+            <value id="GNOME_EDGE_FINISH" _name="End"/>
+            <value id="GNOME_EDGE_OTHER" _name="Other"/>
+          </displayable-values>
+	</property>
+	<property id="title" _name="Title" translatable="True">
+	  <spec>glade_standard_string_spec</spec>
+          <visible-lines>2</visible-lines>
+	</property>
+	<property id="text" _name="Text" translatable="True">
+	  <spec>glade_standard_string_spec</spec>
+          <visible-lines>4</visible-lines>
+	</property>
+	<property id="title-foreground" _name="Title Foreground Color" default="#FFFFFF">
+	  <spec>glade_standard_gdkcolor_spec</spec>
+	</property>
+	<property id="text-foreground" _name="Text Foreground Color" default="#000000">
+	  <spec>glade_standard_gdkcolor_spec</spec>
+	</property>
+	<property id="background" _name="Background Color" default="#4B6983">
+	  <spec>glade_standard_gdkcolor_spec</spec>
+	</property>
+	<property id="contents-background" _name="Contents Background Color" default="#DCDAD5">
+	  <spec>glade_standard_gdkcolor_spec</spec>
+	</property>	
+	<property id="logo-background" _name="Logo Background Color" default="#4B6983">
+	  <spec>glade_standard_gdkcolor_spec</spec>
+	</property>
+	<property id="logo" _name="Logo">
+	  <spec>glade_standard_pixbuf_spec</spec>
+	</property>
+	<property id="watermark" _name="Watermark">
+	  <spec>glade_standard_pixbuf_spec</spec>
+	</property>
+	<property id="top-watermark" _name="Top Watermark">
+	  <spec>glade_standard_pixbuf_spec</spec>
+	</property>
+      </properties>
+    </glade-widget-class>
+    
+    <glade-widget-class name="GnomeDruidPageStandard" generic-name="druidpagestandard" _title="GNOME Druid Page Standard">
+      <post-create-function>glade_gnome_dps_post_create</post-create-function>
+      <get-internal-child-function>glade_gnome_dps_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gnome_dps_get_children</get-children-function>
+      <set-property-function>glade_gnome_dps_set_property</set-property-function>
+
+      <properties>
+	<property id="title" translatable="True">
+          <visible-lines>2</visible-lines>
+	</property>
+
+        <property id="background-set" disabled="True"/>
+	<property id="background" visible="False" save="False" default="#4B6983"/>
+	<property id="contents-background-set" disabled="True"/>
+	<property id="contents-background" visible="False" save="False" default="#DCDAD5"/>
+	<property id="logo-background-set" disabled="True"/>
+	<property id="logo-background" visible="False" save="False" default="#4B6983"/>
+	<property id="title-foreground-set" disabled="True"/>
+	<property id="title-foreground" visible="False" save="False" default="#FFFFFF"/>
+      </properties>
+    </glade-widget-class>
+
+
+    <glade-widget-class name="GnomeIconSelection" generic-name="iconselection" _title="GNOME Icon Selection">
+      <properties>
+        <property id="size" visible="False" query="False" ignore="True"/>
+      </properties>
+    </glade-widget-class>
+    <glade-widget-class name="GnomeIconEntry" generic-name="iconentry" _title="GNOME Icon Entry">
+      <set-property-function>glade_gnome_icon_entry_set_property</set-property-function>
+      <properties>
+        <property id="max-saved" _name="Max Saved">
+	  <spec>glade_standard_uint_spec</spec>
+	  <tooltip>The maximum number of history entries saved.</tooltip>
+	</property>
+        <property id="size" visible="False" query="False" ignore="True"/>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeHRef" generic-name="href" _title="GNOME HRef"/>
+
+    <glade-widget-class name="GnomeDateEdit" generic-name="dateedit" _title="GNOME Date Edit">
+      <post-create-function>glade_gnome_date_edit_post_create</post-create-function>
+      <properties>
+        <property id="time" disabled="True"/>
+        <property id="size" visible="False" query="False" ignore="True"/>
+        <property id="dateedit-flags">
+          <displayable-values>
+            <value id="GNOME_DATE_EDIT_SHOW_TIME" _name="Show Time"/>
+            <value id="GNOME_DATE_EDIT_24_HR" _name="24-Hour Format"/>
+	    <value id="GNOME_DATE_EDIT_WEEK_STARTS_ON_MONDAY" _name="Monday First"/>
+	    <value id="GNOME_DATE_EDIT_DISPLAY_SECONDS" _name="Display Seconds"/>
+          </displayable-values>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeAppBar" generic-name="appbar" _title="GNOME App Bar">
+      <post-create-function>glade_gnome_app_bar_post_create</post-create-function>
+      <properties>
+        <property id="has-progress" default="True" ignore="True"/>
+	<property id="has-status" default="True" ignore="True"/>
+        <property id="size" visible="False" query="False" ignore="True"/>
+	<property id="interactivity">
+          <displayable-values>
+            <value id="GNOME_PREFERENCES_NEVER" _name="Never"/>
+            <value id="GNOME_PREFERENCES_USER" _name="User"/>
+	    <value id="GNOME_PREFERENCES_ALWAYS" _name="Always"/>
+          </displayable-values>
+	</property>
+      </properties>
+    </glade-widget-class>
+    
+    <!-- Deprecated Widget Classes :) -->
+    <glade-widget-class name="GnomeDialog" generic-name="dialog" _title="GNOME Dialog">
+      <post-create-function>glade_gnome_dialog_post_create</post-create-function>
+      <get-internal-child-function>glade_gnome_dialog_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gnome_dialog_get_children</get-children-function>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeAbout" generic-name="about" _title="GNOME About">
+      <post-create-function>glade_gnome_about_dialog_post_create</post-create-function> 
+      <set-property-function>glade_gnome_about_dialog_set_property</set-property-function>
+      <properties>
+        <property id="name" _name="Program Name"/>
+        <property id="version" _name="Program Version"/>
+        <property id="comments" translatable="True">
+          <visible-lines>4</visible-lines>
+        </property>
+        <property id="copyright" translatable="True">
+          <visible-lines>4</visible-lines>
+        </property>
+        <property id="translator-credits" translatable="True">
+          <visible-lines>4</visible-lines>
+        </property>
+      </properties>
+    </glade-widget-class>
+    
+    <glade-widget-class name="GnomeMessageBox" generic-name="messagebox" _title="GNOME Message Box">
+      <set-property-function>glade_gnome_message_box_set_property</set-property-function>
+      <properties>
+        <property id="message-box-type">
+	  <spec>glade_gnome_message_box_type_spec</spec>
+          <displayable-values>
+            <value id="GNOME_MESSAGE_BOX_INFO" _name="Information"/>
+	    <value id="GNOME_MESSAGE_BOX_WARNING" _name="Warning"/>
+	    <value id="GNOME_MESSAGE_BOX_ERROR" _name="Error"/>
+	    <value id="GNOME_MESSAGE_BOX_QUESTION" _name="Question"/>
+	    <value id="GNOME_MESSAGE_BOX_GENERIC" _name="Generic"/>
+          </displayable-values>
+	</property>
+        <property id="message" _name="Message">
+	  <spec>glade_standard_string_spec</spec>
+	  <tooltip>The message to display</tooltip>
+	</property>
+      </properties>
+    </glade-widget-class>
+    <glade-widget-class name="GnomePropertyBox" generic-name="propertybox" _title="GNOME Property Box"/>
+
+    <glade-widget-class name="GnomeEntry" generic-name="entry" title="GNOME Entry">
+      <post-create-function>glade_gnome_entry_post_create</post-create-function>
+      <get-internal-child-function>glade_gnome_entry_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gnome_entry_get_children</get-children-function>
+      <set-property-function>glade_gnome_entry_set_property</set-property-function>
+      <properties>
+        <property id="gtk-entry" disabled="True"/>
+	<property id="max-saved" _name="Max Saved">
+	  <spec>glade_standard_int_spec</spec>
+	  <_tooltip>The maximum number of history entries saved</_tooltip>
+	</property>
+        <property id="size" visible="False" query="False" ignore="True"/>
+      </properties>
+
+      <packing-properties>
+        <property id="expand" disabled="True"/>
+        <property id="fill" disabled="True"/>
+        <property id="pack-type" disabled="True"/>
+        <property id="padding" disabled="True"/>
+        <property id="position" disabled="True"/>
+      </packing-properties>
+    </glade-widget-class>
+    
+    <glade-widget-class name="GnomeFileEntry" generic-name="fileentry" _title="GNOME File Entry">
+      <post-create-function>glade_gnome_entry_post_create</post-create-function>
+      <get-internal-child-function>glade_gnome_entry_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gnome_entry_get_children</get-children-function>
+      <set-property-function>glade_gnome_file_entry_set_property</set-property-function>
+      <properties>
+	<property id="max-saved" _name="Max Saved">
+	  <spec>glade_standard_int_spec</spec>
+	  <_tooltip>The maximum number of history entries saved</_tooltip>
+	</property>
+        <property id="size" visible="False" query="False" ignore="True"/>
+      </properties>
+      <packing-properties>
+        <property id="expand" disabled="True"/>
+        <property id="fill" disabled="True"/>
+        <property id="pack-type" disabled="True"/>
+        <property id="padding" disabled="True"/>
+        <property id="position" disabled="True"/>
+      </packing-properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomePixmapEntry" generic-name="pixmapentry" _title="GNOME Pixmap Entry">
+      <packing-properties>
+        <property id="expand" disabled="True"/>
+        <property id="fill" disabled="True"/>
+        <property id="pack-type" disabled="True"/>
+        <property id="padding" disabled="True"/>
+        <property id="position" disabled="True"/>
+      </packing-properties>
+    </glade-widget-class>
+    
+    <glade-widget-class name="GnomeColorPicker" generic-name="colorpicker" _title="GNOME Color Picker">
+      <post-create-function>empty</post-create-function>
+        <properties>
+	  <property id="use-underline" disabled="True"/>
+	  <property id="label" disabled="True"/>
+	  <property id="glade-type" disabled="True"/>
+          <property id="stock" disabled="True"/>
+	  <property id="red" disabled="True"/>
+	  <property id="green" disabled="True"/>
+	  <property id="blue" disabled="True"/>
+	  <property id="alpha" disabled="True"/>
+	  <property id="dither" _name="Dither"/>
+	  <property id="use-alpha" _name="Use Alpha"/>
+	  <property id="title" _name="Title"/>
+        </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomeFontPicker" generic-name="fontpicker" _title="GNOME Font Picker">
+      <post-create-function>empty</post-create-function>
+      <get-children-function>glade_gnome_font_picker_get_children</get-children-function>
+      <add-child-function>glade_gnome_font_picker_add_child</add-child-function>
+      <remove-child-function>glade_gnome_font_picker_remove_child</remove-child-function>
+      <replace-child-function>glade_gnome_font_picker_replace_child</replace-child-function>
+      <set-property-function>glade_gnome_font_picker_set_property</set-property-function>
+
+      <properties>
+        <property id="use-underline" disabled="True"/>
+        <property id="label" disabled="True"/>
+        <property id="glade-type" disabled="True"/>
+	<property id="stock" disabled="True"/>
+        <property id="font-name" disabled="True"/>
+        <property id="mode">
+	  <displayable-values>
+	    <value id="GNOME_FONT_PICKER_MODE_PIXMAP" _name="Pixmap"/>
+	    <value id="GNOME_FONT_PICKER_MODE_FONT_INFO" _name="Font Information"/>
+	    <value id="GNOME_FONT_PICKER_MODE_USER_WIDGET" _name="User Widget"/>
+	    <value id="GNOME_FONT_PICKER_MODE_UNKNOWN" _name="Unknown"/>
+	  </displayable-values>
+        </property>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GnomePixmap" generic-name="pixmap" _title="GNOME Pixmap">
+      <post-create-function>empty</post-create-function>
+      <set-property-function>glade_gnome_pixmap_set_property</set-property-function>
+      <properties>
+        <property id="stock" disabled="True"/>
+        <property id="icon-name" disabled="True"/>
+        <property id="glade-stock" disabled="True"/>
+        <property id="glade-type" disabled="True"/>
+        <property id="pixbuf" disabled="True"/>
+        <property id="icon-size" disabled="True"/>
+        <property id="pixel-size" disabled="True"/>
+	<property id="filename" _name="File">
+	  <spec>glade_standard_pixbuf_spec</spec>
+	  <_tooltip>The pixmap file</_tooltip>
+	</property>
+	<property id="scaled-width" _name="Scaled Width">
+	  <spec>glade_standard_int_spec</spec>
+	  <_tooltip>The width to scale the pixmap to</_tooltip>
+	</property>
+	<property id="scaled-height" _name="Scaled Height">
+	  <spec>glade_standard_int_spec</spec>
+	  <_tooltip>The height to scale the pixmap to</_tooltip>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <!-- Unsupported Classes
+    Deprecated and not suported by libglade:
+      * GnomeScores
+    
+    These are not widget classes:
+      * GnomeClient
+      * GnomeMdi, GnomeMdiChild, GnomeMdiGenericChild
+      * GnomeCanvasItem, GnomeIconTextItem -->
+  </glade-widget-classes>
+
+  <glade-widget-group name="gnomeui-base" _title="GNOME User Interface">
+
+    <glade-widget-class-ref name="GnomeApp"/>
+    <glade-widget-class-ref name="GnomeDruid"/>
+    <glade-widget-class-ref name="GnomeIconSelection"/>    
+    <glade-widget-class-ref name="GnomeHRef"/>
+    <glade-widget-class-ref name="GnomeDateEdit"/>
+    <glade-widget-class-ref name="GnomeIconEntry"/>
+    <glade-widget-class-ref name="GnomeAppBar"/>
+  </glade-widget-group>
+
+  <glade-widget-group name="gnomeui-obsolete" _title="GNOME UI Obsolete">
+
+    <default-palette-state expanded="False" />
+
+    <glade-widget-class-ref name="GnomeDialog"/>
+    <glade-widget-class-ref name="GnomeAbout"/>
+    <glade-widget-class-ref name="GnomeMessageBox"/>
+    <glade-widget-class-ref name="GnomePropertyBox"/>
+    <glade-widget-class-ref name="GnomeEntry"/>
+    <glade-widget-class-ref name="GnomeFileEntry"/>
+    <glade-widget-class-ref name="GnomePixmapEntry"/>
+    <glade-widget-class-ref name="GnomeColorPicker"/>
+    <glade-widget-class-ref name="GnomeFontPicker"/>
+    <glade-widget-class-ref name="GnomePixmap"/>
+  </glade-widget-group>
+</glade-catalog>
diff --git a/plugins/gnome/icons/16x16/Makefile.am b/plugins/gnome/icons/16x16/Makefile.am
new file mode 100644
index 0000000..dec441b
--- /dev/null
+++ b/plugins/gnome/icons/16x16/Makefile.am
@@ -0,0 +1,30 @@
+## Process this file with automake to produce Makefile.in
+
+iconsdir = $(pkgdatadir)/pixmaps/hicolor/16x16/actions
+
+icons_DATA = \
+        widget-gnome-about.png \
+        widget-gnome-app.png \
+        widget-gnome-appbar.png \
+        widget-bonobo-dock.png \
+        widget-bonobo-dockitem.png \
+        widget-gnome-canvas.png \
+        widget-gnome-colorpicker.png \
+        widget-gnome-dateedit.png \
+        widget-gnome-dialog.png \
+        widget-gnome-druid.png \
+        widget-gnome-druidpageedge.png \
+        widget-gnome-druidpagestandard.png \
+        widget-gnome-entry.png \
+        widget-gnome-fileentry.png \
+        widget-gnome-fontpicker.png \
+        widget-gnome-href.png \
+        widget-gnome-iconentry.png \
+        widget-gnome-iconlist.png \
+        widget-gnome-iconselection.png \
+        widget-gnome-messagebox.png \
+        widget-gnome-pixmap.png \
+        widget-gnome-pixmapentry.png \
+        widget-gnome-propertybox.png
+
+EXTRA_DIST = $(icons_DATA)
diff --git a/plugins/gnome/icons/16x16/widget-bonobo-dock.png b/plugins/gnome/icons/16x16/widget-bonobo-dock.png
new file mode 100644
index 0000000..eb8025f
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-bonobo-dock.png differ
diff --git a/plugins/gnome/icons/16x16/widget-bonobo-dockitem.png b/plugins/gnome/icons/16x16/widget-bonobo-dockitem.png
new file mode 100644
index 0000000..a56584e
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-bonobo-dockitem.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-about.png b/plugins/gnome/icons/16x16/widget-gnome-about.png
new file mode 100644
index 0000000..2e64933
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-about.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-app.png b/plugins/gnome/icons/16x16/widget-gnome-app.png
new file mode 100644
index 0000000..ee23fee
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-app.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-appbar.png b/plugins/gnome/icons/16x16/widget-gnome-appbar.png
new file mode 100644
index 0000000..b8297ce
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-appbar.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-canvas.png b/plugins/gnome/icons/16x16/widget-gnome-canvas.png
new file mode 100644
index 0000000..5df4e27
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-canvas.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-colorpicker.png b/plugins/gnome/icons/16x16/widget-gnome-colorpicker.png
new file mode 100644
index 0000000..49c077d
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-colorpicker.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-dateedit.png b/plugins/gnome/icons/16x16/widget-gnome-dateedit.png
new file mode 100644
index 0000000..ec4e622
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-dateedit.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-dialog.png b/plugins/gnome/icons/16x16/widget-gnome-dialog.png
new file mode 100644
index 0000000..ae70aec
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-dialog.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-druid.png b/plugins/gnome/icons/16x16/widget-gnome-druid.png
new file mode 100644
index 0000000..23821b0
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-druid.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-druidpageedge.png b/plugins/gnome/icons/16x16/widget-gnome-druidpageedge.png
new file mode 100644
index 0000000..23821b0
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-druidpageedge.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-druidpagestandard.png b/plugins/gnome/icons/16x16/widget-gnome-druidpagestandard.png
new file mode 100644
index 0000000..78018d9
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-druidpagestandard.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-entry.png b/plugins/gnome/icons/16x16/widget-gnome-entry.png
new file mode 100644
index 0000000..a76ad8b
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-entry.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-fileentry.png b/plugins/gnome/icons/16x16/widget-gnome-fileentry.png
new file mode 100644
index 0000000..ec4e622
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-fileentry.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-fontpicker.png b/plugins/gnome/icons/16x16/widget-gnome-fontpicker.png
new file mode 100644
index 0000000..8fa2d50
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-fontpicker.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-href.png b/plugins/gnome/icons/16x16/widget-gnome-href.png
new file mode 100644
index 0000000..cdc839e
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-href.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-iconentry.png b/plugins/gnome/icons/16x16/widget-gnome-iconentry.png
new file mode 100644
index 0000000..413d2b3
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-iconentry.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-iconlist.png b/plugins/gnome/icons/16x16/widget-gnome-iconlist.png
new file mode 100644
index 0000000..4843928
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-iconlist.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-iconselection.png b/plugins/gnome/icons/16x16/widget-gnome-iconselection.png
new file mode 100644
index 0000000..2f7b08a
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-iconselection.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-messagebox.png b/plugins/gnome/icons/16x16/widget-gnome-messagebox.png
new file mode 100644
index 0000000..c3643f1
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-messagebox.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-pixmap.png b/plugins/gnome/icons/16x16/widget-gnome-pixmap.png
new file mode 100644
index 0000000..7c13c07
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-pixmap.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-pixmapentry.png b/plugins/gnome/icons/16x16/widget-gnome-pixmapentry.png
new file mode 100644
index 0000000..ec4e622
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-pixmapentry.png differ
diff --git a/plugins/gnome/icons/16x16/widget-gnome-propertybox.png b/plugins/gnome/icons/16x16/widget-gnome-propertybox.png
new file mode 100644
index 0000000..32f2790
Binary files /dev/null and b/plugins/gnome/icons/16x16/widget-gnome-propertybox.png differ
diff --git a/plugins/gnome/icons/22x22/Makefile.am b/plugins/gnome/icons/22x22/Makefile.am
new file mode 100644
index 0000000..6e4e430
--- /dev/null
+++ b/plugins/gnome/icons/22x22/Makefile.am
@@ -0,0 +1,31 @@
+## Process this file with automake to produce Makefile.in
+
+iconsdir = $(pkgdatadir)/pixmaps/hicolor/22x22/actions
+
+icons_DATA = \
+        widget-gnome-about.png \
+        widget-gnome-app.png \
+        widget-gnome-appbar.png \
+        widget-bonobo-dock.png \
+        widget-bonobo-dockitem.png \
+        widget-gnome-canvas.png \
+        widget-gnome-colorpicker.png \
+        widget-gnome-dateedit.png \
+        widget-gnome-dialog.png \
+        widget-gnome-druid.png \
+        widget-gnome-druidpageedge.png \
+        widget-gnome-druidpagestandard.png \
+        widget-gnome-entry.png \
+        widget-gnome-fileentry.png \
+        widget-gnome-fontpicker.png \
+        widget-gnome-href.png \
+        widget-gnome-iconentry.png \
+        widget-gnome-iconlist.png \
+        widget-gnome-iconselection.png \
+        widget-gnome-messagebox.png \
+        widget-gnome-pixmap.png \
+        widget-gnome-pixmapentry.png \
+        widget-gnome-propertybox.png
+
+
+EXTRA_DIST = $(icons_DATA)
diff --git a/plugins/gnome/icons/22x22/widget-bonobo-dock.png b/plugins/gnome/icons/22x22/widget-bonobo-dock.png
new file mode 100644
index 0000000..e98ed3d
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-bonobo-dock.png differ
diff --git a/plugins/gnome/icons/22x22/widget-bonobo-dockitem.png b/plugins/gnome/icons/22x22/widget-bonobo-dockitem.png
new file mode 100644
index 0000000..a66fd06
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-bonobo-dockitem.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-about.png b/plugins/gnome/icons/22x22/widget-gnome-about.png
new file mode 100644
index 0000000..0015235
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-about.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-app.png b/plugins/gnome/icons/22x22/widget-gnome-app.png
new file mode 100644
index 0000000..fc6acbe
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-app.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-appbar.png b/plugins/gnome/icons/22x22/widget-gnome-appbar.png
new file mode 100644
index 0000000..85af74f
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-appbar.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-canvas.png b/plugins/gnome/icons/22x22/widget-gnome-canvas.png
new file mode 100644
index 0000000..1911b51
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-canvas.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-colorpicker.png b/plugins/gnome/icons/22x22/widget-gnome-colorpicker.png
new file mode 100644
index 0000000..ff4676a
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-colorpicker.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-dateedit.png b/plugins/gnome/icons/22x22/widget-gnome-dateedit.png
new file mode 100644
index 0000000..7945a48
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-dateedit.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-dialog.png b/plugins/gnome/icons/22x22/widget-gnome-dialog.png
new file mode 100644
index 0000000..575ebf5
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-dialog.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-druid.png b/plugins/gnome/icons/22x22/widget-gnome-druid.png
new file mode 100644
index 0000000..78daffa
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-druid.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-druidpageedge.png b/plugins/gnome/icons/22x22/widget-gnome-druidpageedge.png
new file mode 100644
index 0000000..78daffa
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-druidpageedge.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-druidpagestandard.png b/plugins/gnome/icons/22x22/widget-gnome-druidpagestandard.png
new file mode 100644
index 0000000..03010e6
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-druidpagestandard.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-entry.png b/plugins/gnome/icons/22x22/widget-gnome-entry.png
new file mode 100644
index 0000000..89d0fa1
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-entry.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-fileentry.png b/plugins/gnome/icons/22x22/widget-gnome-fileentry.png
new file mode 100644
index 0000000..7945a48
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-fileentry.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-fontpicker.png b/plugins/gnome/icons/22x22/widget-gnome-fontpicker.png
new file mode 100644
index 0000000..79a88eb
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-fontpicker.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-href.png b/plugins/gnome/icons/22x22/widget-gnome-href.png
new file mode 100644
index 0000000..58a7890
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-href.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-iconentry.png b/plugins/gnome/icons/22x22/widget-gnome-iconentry.png
new file mode 100644
index 0000000..e90c556
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-iconentry.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-iconlist.png b/plugins/gnome/icons/22x22/widget-gnome-iconlist.png
new file mode 100644
index 0000000..fcf5bcb
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-iconlist.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-iconselection.png b/plugins/gnome/icons/22x22/widget-gnome-iconselection.png
new file mode 100644
index 0000000..80711e9
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-iconselection.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-messagebox.png b/plugins/gnome/icons/22x22/widget-gnome-messagebox.png
new file mode 100644
index 0000000..df878d3
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-messagebox.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-pixmap.png b/plugins/gnome/icons/22x22/widget-gnome-pixmap.png
new file mode 100644
index 0000000..414ae1c
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-pixmap.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-pixmapentry.png b/plugins/gnome/icons/22x22/widget-gnome-pixmapentry.png
new file mode 100644
index 0000000..7945a48
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-pixmapentry.png differ
diff --git a/plugins/gnome/icons/22x22/widget-gnome-propertybox.png b/plugins/gnome/icons/22x22/widget-gnome-propertybox.png
new file mode 100644
index 0000000..a36f7c3
Binary files /dev/null and b/plugins/gnome/icons/22x22/widget-gnome-propertybox.png differ
diff --git a/plugins/gnome/icons/Makefile.am b/plugins/gnome/icons/Makefile.am
new file mode 100644
index 0000000..bd39c36
--- /dev/null
+++ b/plugins/gnome/icons/Makefile.am
@@ -0,0 +1,3 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = 16x16 22x22
diff --git a/plugins/gtk+/Makefile.am b/plugins/gtk+/Makefile.am
index c420717..032397d 100644
--- a/plugins/gtk+/Makefile.am
+++ b/plugins/gtk+/Makefile.am
@@ -2,7 +2,7 @@
 
 SUBDIRS = icons
 
-libgladeui = $(top_builddir)/gladeui/libgladeui-2.la
+libgladeui = $(top_builddir)/gladeui/libgladeui-1.la
 
 
 # libgladegtk
diff --git a/plugins/gtk+/glade-gtk.c b/plugins/gtk+/glade-gtk.c
index 2e33c3c..5b3be7f 100644
--- a/plugins/gtk+/glade-gtk.c
+++ b/plugins/gtk+/glade-gtk.c
@@ -5193,6 +5193,18 @@ glade_gtk_file_chooser_forall (GtkWidget *widget, gpointer data)
 				      NULL);
 }
 
+static void
+glade_gtk_input_dialog_forall (GtkWidget *widget, gpointer data)
+{
+	/* Make every option menu insensitive, yes it use a deprecated widget */
+	if (GTK_IS_OPTION_MENU (widget))
+		gtk_widget_set_sensitive (widget, FALSE);
+	else if (GTK_IS_CONTAINER (widget))
+		gtk_container_forall (GTK_CONTAINER (widget),
+				      glade_gtk_input_dialog_forall,
+				      NULL);
+}
+
 void 
 glade_gtk_dialog_post_create (GladeWidgetAdaptor *adaptor,
 			      GObject            *object, 
@@ -5201,8 +5213,8 @@ glade_gtk_dialog_post_create (GladeWidgetAdaptor *adaptor,
 	GtkDialog    *dialog = GTK_DIALOG (object);
 	GladeWidget  *widget;
 	GladeWidget  *vbox_widget, *actionarea_widget, *colorsel, *fontsel;
-	GladeWidget  *ok_button = NULL, *cancel_button = NULL, 
-		*help_button = NULL, *apply_button = NULL;
+	GladeWidget  *save_button = NULL, *close_button = NULL, *ok_button = NULL,
+		*cancel_button = NULL, *help_button = NULL, *apply_button = NULL;
 	
 	g_return_if_fail (GTK_IS_DIALOG (dialog));
 
@@ -5216,7 +5228,40 @@ glade_gtk_dialog_post_create (GladeWidgetAdaptor *adaptor,
 		glade_widget_property_set (widget, "border-width", 5);
 	}
 
-	if (GTK_IS_COLOR_SELECTION_DIALOG (object))
+	if (GTK_IS_INPUT_DIALOG (object))
+	{
+		GtkInputDialog *id = GTK_INPUT_DIALOG (dialog);
+
+		save_button = glade_widget_adaptor_create_internal
+			(widget, G_OBJECT (id->save_button),
+			 "save_button", "inputdialog", FALSE, reason);
+		close_button = glade_widget_adaptor_create_internal
+			(widget, G_OBJECT (id->close_button),
+			 "close_button", "inputdialog", FALSE, reason);
+		/*
+		  On device and mode menu items "activate" signal handlers 
+		  GtkInputDialog call gtk_widget_get_toplevel() and assume that
+		  the toplevel returned is the GtkInputDialog but since the 
+		  dialog is embed inside glade the returned pointer is not what
+		  expected and this gives a segfault :S
+		*/
+		gtk_container_forall (GTK_CONTAINER (dialog),
+				      glade_gtk_input_dialog_forall,
+				      NULL);
+		
+		glade_gtk_dialog_stop_offending_signals (GTK_WIDGET (dialog));
+	}
+	else if (GTK_IS_FILE_SELECTION (object))
+	{
+		ok_button = glade_widget_adaptor_create_internal
+			(widget, G_OBJECT (GTK_FILE_SELECTION (object)->ok_button),
+			 "ok_button", "filesel", FALSE, reason);
+
+		cancel_button = glade_widget_adaptor_create_internal
+			(widget, G_OBJECT (GTK_FILE_SELECTION (object)->cancel_button),
+			 "cancel_button", "filesel", FALSE, reason);
+	}
+	else if (GTK_IS_COLOR_SELECTION_DIALOG (object))
 	{
 		GtkWidget *child;
 
@@ -5339,7 +5384,21 @@ glade_gtk_dialog_get_internal_child (GladeWidgetAdaptor  *adaptor,
 
 	g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL);
 
-	if (GTK_IS_COLOR_SELECTION_DIALOG (dialog))
+	if (GTK_IS_INPUT_DIALOG (dialog))
+	{
+		if (strcmp ("close_button", name) == 0)
+			child = GTK_INPUT_DIALOG (dialog)->close_button;
+		else if (strcmp ("save_button", name) == 0)
+			child = GTK_INPUT_DIALOG (dialog)->save_button;
+	}
+	else if (GTK_IS_FILE_SELECTION (dialog))
+	{
+		if (strcmp ("ok_button", name) == 0)
+			child = GTK_FILE_SELECTION (dialog)->ok_button;
+		else if (strcmp ("cancel_button", name) == 0)
+			child = GTK_FILE_SELECTION (dialog)->cancel_button;
+	}
+	else if (GTK_IS_COLOR_SELECTION_DIALOG (dialog))
 	{
 		if (strcmp ("ok_button", name) == 0)
 			child = gtk_dialog_get_widget_for_response (dialog, GTK_RESPONSE_OK);
@@ -5389,7 +5448,17 @@ glade_gtk_dialog_get_children (GladeWidgetAdaptor  *adaptor,
 
 	list = glade_util_container_get_all_children (GTK_CONTAINER (dialog));
 
-	if (GTK_IS_COLOR_SELECTION_DIALOG (dialog))
+	if (GTK_IS_INPUT_DIALOG (dialog))
+	{
+		list = g_list_prepend (list, GTK_INPUT_DIALOG (dialog)->close_button);
+		list = g_list_prepend (list, GTK_INPUT_DIALOG (dialog)->save_button);
+	}
+	else if (GTK_IS_FILE_SELECTION (dialog))
+	{
+		list = g_list_prepend (list, GTK_FILE_SELECTION (dialog)->ok_button);
+		list = g_list_prepend (list, GTK_FILE_SELECTION (dialog)->cancel_button);
+	}
+	else if (GTK_IS_COLOR_SELECTION_DIALOG (dialog))
 	{
 		GtkWidget *widget;
 		
@@ -8896,6 +8965,156 @@ glade_gtk_spin_button_set_property (GladeWidgetAdaptor *adaptor,
 							      id, value);
 }
 
+/* ----------------------------- GtkCombo ------------------------------ */
+void
+glade_gtk_combo_post_create (GladeWidgetAdaptor *adaptor,
+			     GObject            *object,
+			     GladeCreateReason   reason)
+{
+	GladeWidget  *gcombo, *gentry, *glist;
+
+	g_return_if_fail (GTK_IS_COMBO (object));
+
+	if ((gcombo = glade_widget_get_from_gobject (object)) == NULL)
+		return;
+	
+	gentry = glade_widget_adaptor_create_internal
+		(gcombo, G_OBJECT (GTK_COMBO (object)->entry),
+		 "entry", "combo", FALSE, reason);
+
+	/* We mark this 'anarchist' since its outside of the hierarchy */
+	glist  = glade_widget_adaptor_create_internal
+		(gcombo, G_OBJECT (GTK_COMBO (object)->list),
+		 "list", "combo", TRUE, reason);
+
+}
+
+GObject *
+glade_gtk_combo_get_internal_child (GladeWidgetAdaptor *adaptor,
+				    GtkCombo           *combo,
+				    const gchar        *name)
+{
+	GObject *child = NULL;
+
+	g_return_val_if_fail (GTK_IS_COMBO (combo), NULL);
+	
+	if (strcmp ("list", name) == 0)
+		child = G_OBJECT (combo->list);
+	else if (strcmp ("entry", name) == 0)
+		child = G_OBJECT (combo->entry);
+
+	return child;
+}
+
+GList *
+glade_gtk_combo_get_children (GladeWidgetAdaptor *adaptor, GtkCombo *combo)
+{
+	GList *list = NULL;
+
+	g_return_val_if_fail (GTK_IS_COMBO (combo), NULL);
+
+	list = glade_util_container_get_all_children (GTK_CONTAINER (combo));
+
+	/* Ensure that we only return one 'combo->list' */
+	if (g_list_find (list, combo->list) == NULL)
+		list = g_list_append (list, combo->list);
+
+	return list;
+}
+
+/* ----------------------------- GtkListItem ------------------------------ */
+void
+glade_gtk_list_item_post_create (GladeWidgetAdaptor *adaptor,
+				 GObject            *object, 
+				 GladeCreateReason   reason)
+{
+	GtkWidget *label;
+
+	g_return_if_fail (GTK_IS_LIST_ITEM (object));
+
+	label = gtk_label_new ("");
+	gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+	gtk_misc_set_padding (GTK_MISC (label), 0, 1);
+
+	gtk_container_add (GTK_CONTAINER (object), label);
+	gtk_widget_show (label);
+}
+
+static void
+glade_gtk_list_item_set_label (GObject *object, const GValue *value)
+{
+	GtkWidget *label;
+
+	g_return_if_fail (GTK_IS_LIST_ITEM (object));
+
+	label = gtk_bin_get_child (GTK_BIN (object));
+
+	gtk_label_set_text (GTK_LABEL (label), g_value_get_string (value));
+}
+
+static void
+glade_gtk_list_item_get_label (GObject *object, GValue *value)
+{
+	GtkWidget *label;
+
+	g_return_if_fail (GTK_IS_LIST_ITEM (object));
+
+	label = gtk_bin_get_child (GTK_BIN (object));
+
+	g_value_set_string (value, gtk_label_get_text (GTK_LABEL (label)));
+}
+
+void
+glade_gtk_list_item_set_property (GladeWidgetAdaptor *adaptor,
+				  GObject            *object, 
+				  const gchar        *id,
+				  const GValue       *value)
+{
+	if (!strcmp (id, "label"))
+		glade_gtk_list_item_set_label (object, value);
+	else
+		GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor,
+								  object,
+								  id, value);
+}
+
+void
+glade_gtk_list_item_get_property (GladeWidgetAdaptor *adaptor,
+				  GObject            *object, 
+				  const gchar        *id,
+				  GValue             *value)
+{
+	if (!strcmp (id, "label"))
+		glade_gtk_list_item_get_label (object, value);
+	else
+		GWA_GET_CLASS (GTK_TYPE_CONTAINER)->set_property (adaptor,
+								  object,
+								  id, value);
+}
+
+
+void
+glade_gtk_listitem_add_child (GladeWidgetAdaptor  *adaptor,
+			      GObject             *object, 
+			      GObject             *child)
+{
+	g_return_if_fail (GTK_IS_CONTAINER (object));
+	g_return_if_fail (GTK_IS_WIDGET (child));
+
+	gtk_container_add (GTK_CONTAINER (object), GTK_WIDGET (child));
+}
+
+void
+glade_gtk_listitem_remove_child (GladeWidgetAdaptor  *adaptor,
+				 GObject             *object, 
+				 GObject             *child)
+{
+	g_return_if_fail (GTK_IS_CONTAINER (object));
+	g_return_if_fail (GTK_IS_WIDGET (child));
+
+	gtk_container_add (GTK_CONTAINER (object), GTK_WIDGET (child));
+}
+
 /* ------------------------------ GtkAssistant ------------------------------ */
 static void
 glade_gtk_assistant_append_new_page (GladeWidget *parent,
diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in
index 30fdb07..ef412ec 100644
--- a/plugins/gtk+/gtk+.xml.in
+++ b/plugins/gtk+/gtk+.xml.in
@@ -1650,6 +1650,12 @@ embedded in another object</_tooltip>
         <property id="has-separator"  disabled="True"/>
       </properties>
     </glade-widget-class>
+
+    <glade-widget-class name="GtkInputDialog" generic-name="inputdialog" deprecated="True" _title="Input Dialog">
+      <properties>
+        <property id="has-separator"  disabled="True"/>
+      </properties>
+    </glade-widget-class>
     
     <glade-widget-class name="GtkMessageDialog" generic-name="messagedialog" _title="Message Dialog" default-width="400" default-height="115">
       <set-property-function>glade_gtk_message_dialog_set_property</set-property-function>
@@ -1721,10 +1727,107 @@ embedded in another object</_tooltip>
       </properties>
     </glade-widget-class>
 
+    <glade-widget-class name="GtkCombo" generic-name="combo" _title="Combo" deprecated="True" libglade-only="True">
+      <post-create-function>glade_gtk_combo_post_create</post-create-function>
+      <get-internal-child-function>glade_gtk_combo_get_internal_child</get-internal-child-function>
+      <get-children-function>glade_gtk_combo_get_children</get-children-function>
+
+      <properties>
+	<property id="size" disabled="True"/>
+
+	<!-- Atk press property -->
+	<property id="atk-press" _name="Press" ignore="True" atk-property="True" save="False">
+	  <parameter-spec>
+	    <type>GParamString</type>
+	  </parameter-spec>
+	  <_tooltip>Set the description of the Press atk action</_tooltip>
+	  <visible-lines>2</visible-lines>
+	</property>
+      </properties>
+
+    </glade-widget-class>
+    
+    <glade-widget-class name="GtkOptionMenu" generic-name="optionmenu" _title="Option Menu" deprecated="True" libglade-only="True">
+      <properties>
+	<!-- Atk press property -->
+	<property id="atk-press" _name="Press" ignore="True" atk-property="True" save="False">
+	  <parameter-spec>
+	    <type>GParamString</type>
+	  </parameter-spec>
+	  <_tooltip>Set the description of the Press atk action</_tooltip>
+	  <visible-lines>2</visible-lines>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GtkList" generic-name="list" _title="List" deprecated="True" libglade-only="True">
+      <add-child-function>glade_gtk_listitem_add_child</add-child-function>
+      <remove-child-function>glade_gtk_listitem_remove_child</remove-child-function>
+      <properties>
+        <property id="selection-mode">
+  	  <displayable-values>
+	    <value id="GTK_SELECTION_NONE" _name="None"/>
+	    <value id="GTK_SELECTION_SINGLE" _name="Single"/>
+	    <value id="GTK_SELECTION_BROWSE" _name="Browse"/>
+	    <value id="GTK_SELECTION_MULTIPLE" _name="Multiple"/>
+	    <value id="GTK_SELECTION_EXTENDED" _name="Extended"/>
+	  </displayable-values>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GtkListItem" generic-name="listitem" _title="List Item" deprecated="True" libglade-only="True">
+      <post-create-function>glade_gtk_list_item_post_create</post-create-function>
+      <set-property-function>glade_gtk_list_item_set_property</set-property-function>
+      <get-property-function>glade_gtk_list_item_get_property</get-property-function>
+      <properties>
+	<property id="label" _name="Label" translatable="True">
+	  <parameter-spec>
+	    <type>GParamString</type>
+	  </parameter-spec>
+	  <_tooltip>The text to display</_tooltip>
+	</property>
+      </properties>
+    </glade-widget-class>
+
+    <glade-widget-class name="GtkCList" generic-name="clist" _title="Columned List" deprecated="True" libglade-only="True">
+      <properties>
+        <property id="sort-type">
+  	  <displayable-values>
+	    <value id="GTK_SORT_ASCENDING" _name="Ascending"/>
+	    <value id="GTK_SORT_DESCENDING" _name="Descending"/>
+	  </displayable-values>
+	</property>
+      </properties>
+    </glade-widget-class>
+
     <glade-widget-class name="GtkColorSelection" generic-name="colorselection" _title="Color Selection"/>
     
     <glade-widget-class name="GtkFontSelection" generic-name="fontselection" _title="Font Selection"/>
     
+    <glade-widget-class name="GtkCurve" generic-name="curve" _title="Curve" deprecated="True">
+      <properties>
+	<property id="curve-type" default="GTK_CURVE_TYPE_SPLINE">
+  	  <displayable-values>
+	    <value id="GTK_CURVE_TYPE_LINEAR" _name="Linear"/>
+	    <value id="GTK_CURVE_TYPE_SPLINE" _name="Spline"/>
+	    <value id="GTK_CURVE_TYPE_FREE" _name="Free"/>
+	  </displayable-values>
+	</property>
+      </properties>
+    </glade-widget-class>
+    
+    <glade-widget-class name="GtkGammaCurve" generic-name="gammacurve" _title="Gamma Curve" deprecated="True"/>
+
+    <glade-widget-class name="GtkFileSelection" generic-name="fileselection" _title="File Selection" deprecated="True" libglade-only="True"/>
+    <glade-widget-class name="Custom" generic-name="custom" _title="Custom widget" deprecated="True" libglade-only="True">
+      <properties>
+	<property id="creation-function"/>
+	<property id="string1"/>
+	<property id="string2"/>
+      </properties>
+    </glade-widget-class>
+
     <glade-widget-class name="GtkAssistant" generic-name="assistant" _title="Assistant" since="2.10">
       <post-create-function>glade_gtk_assistant_post_create</post-create-function>
       <add-child-function>glade_gtk_assistant_add_child</add-child-function>
@@ -3304,6 +3407,7 @@ embedded in another object</_tooltip>
     <glade-widget-class-ref name="GtkColorSelectionDialog"/>
     <glade-widget-class-ref name="GtkFileChooserDialog"/>
     <glade-widget-class-ref name="GtkFontSelectionDialog"/>
+    <glade-widget-class-ref name="GtkInputDialog"/>
     <glade-widget-class-ref name="GtkMessageDialog"/>
     <glade-widget-class-ref name="GtkRecentChooserDialog"/>
     <glade-widget-class-ref name="GtkAssistant"/>
@@ -3428,6 +3532,19 @@ embedded in another object</_tooltip>
 
     <glade-widget-class-ref name="GtkHRuler"/>
     <glade-widget-class-ref name="GtkVRuler"/>
+    <glade-widget-class-ref name="GtkCurve"/>
+    <glade-widget-class-ref name="GtkGammaCurve"/>
   </glade-widget-group>
 
+  <glade-widget-group name="gtk-obsolete" _title="Gtk+ Obsolete">
+
+    <default-palette-state expanded="False"/>
+
+    <glade-widget-class-ref name="GtkCombo"/>
+    <glade-widget-class-ref name="GtkOptionMenu"/>
+    <glade-widget-class-ref name="GtkList"/>
+    <glade-widget-class-ref name="GtkCList"/>
+    <glade-widget-class-ref name="GtkFileSelection"/>
+    <glade-widget-class-ref name="Custom"/>
+  </glade-widget-group>
 </glade-catalog>
diff --git a/src/Makefile.am b/src/Makefile.am
index 1b6a13e..ed147b0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,24 +1,24 @@
 ## Process this file with automake to produce Makefile.in
 
-bin_PROGRAMS = glade
+bin_PROGRAMS = glade-3
 
-glade_CPPFLAGS = \
+glade_3_CPPFLAGS = \
 	-I$(top_srcdir)    \
 	-I$(top_builddir)  \
 	-DGLADE_GNOMEHELPDIR="\"$(HELP_DIR)\""
 	$(AM_CPPFLAGS)
 
-glade_CFLAGS =           \
+glade_3_CFLAGS =           \
 	$(GTK_CFLAGS)      \
 	$(IGE_MAC_CFLAGS)  \
 	$(WARN_CFLAGS)     \
 	$(AM_CFLAGS)
 
-glade_LDFLAGS = $(AM_LDFLAGS)
+glade_3_LDFLAGS = $(AM_LDFLAGS)
 
-glade_LDADD = $(top_builddir)/gladeui/libgladeui-2.la $(IGE_MAC_LIBS)
+glade_3_LDADD = $(top_builddir)/gladeui/libgladeui-1.la $(IGE_MAC_LIBS)
 
-glade_SOURCES = \
+glade_3_SOURCES = \
 	glade-window.c \
 	glade-window.h \
 	glade-close-button.c \
@@ -26,13 +26,13 @@ glade_SOURCES = \
 	main.c
 
 if NATIVE_WIN32
-glade_LDADD += glade-win32-res.o
+glade_3_LDADD += glade-win32-res.o
 if !GLADE_UNSTABLE
-glade_LDFLAGS += -mwindows
+glade_3_LDFLAGS += -mwindows
 endif
 endif
 
-glade-win32-res.o: glade.rc
+glade-win32-res.o: glade-3.rc
 	$(WINDRES) $< $@
 
-EXTRA_DIST = glade.rc.in
+EXTRA_DIST = glade-3.rc.in
diff --git a/src/glade.rc.in b/src/glade-3.rc.in
similarity index 100%
rename from src/glade.rc.in
rename to src/glade-3.rc.in



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