OAF patch committed




Hi,

I committed the initial pass at OAF support. It may be somewhat in
flux. To build with OAF you have to pass --enable-oaf to configure.
Apps that use libgnorba may need to add libgnorba/gnorba.h to their
includes, because Bonobo no longer drags it in for you.
To use OAF instead you have to replace gnome_CORBA_init() with 
gnome_init() plus oaf_init(), and then of course you have to 
use OAF functions instead of GOAD functions.

Patch appended for comment and public record.

Havoc

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/bonobo/ChangeLog,v
retrieving revision 1.275
diff -u -u -r1.275 ChangeLog
--- ChangeLog	2000/01/25 17:42:44	1.275
+++ ChangeLog	2000/01/25 21:36:42
@@ -1,3 +1,77 @@
+2000-01-26  Havoc Pennington  <hp@pobox.com>
+
+	* samples/compound-doc/paint-component-simple.c: include gnorba header
+
+	* bonobo/bonobo-generic-factory.c (impl_Bonobo_GenericFactory_create_object): GNOME_stringlist/Bonobo_stringlist
+
+2000-01-25  Havoc Pennington  <hp@pobox.com>
+
+        * bonobo/bonobo-object-directory.h: The object directory
+	abstraction
+	
+	* gshell/Makefile.am (bin_PROGRAMS): no gshell with OAF
+
+	* samples/compound-doc/Makefile.am (bin_PROGRAMS): no documents
+	with OAF
+
+	* samples/controls/Makefile.am (bin_PROGRAMS): don't build the 
+	controls with OAF
+
+	* components/Makefile.am (SUBDIRS): don't build components with OAF
+
+	* bonobo/test-bw.c: include gnorba.h explicitly, since it isn't
+	in gnome-bonobo.h
+
+	* bonobo/bonobo-main.c (bonobo_init): Get ORB from OD abstraction
+
+	* bonobo/bonobo-generic-factory.c (bonobo_generic_factory_finalize):
+	Use new OD abstraction
+	(bonobo_generic_factory_construct): new OD abstraction
+
+	* bonobo/gnome-bonobo-widget.c
+	(bonobo_widget_launch_component): change a cast to remove
+	GOAD dependency
+
+	* bonobo/bonobo-selector.c (add_gnorba_objects): modify this
+	to use the new object directory abstraction
+	(bonobo_selector_get_selected_goad_id): assert using GOAD
+	(bonobo_selector_get_selected_oaf_id): new, parallel to the
+	GOAD one
+	(gnome_bonobo_select_oaf_id): parallel to the OAF version
+
+	* bonobo/bonobo-object-client.c (bonobo_object_activate): Take "gint
+	flags" instead of "GoadActivationFlags flags" so that we don't
+	need to expose the GOAD headers
+	(bonobo_object_activate_with_goad_id): ditto, and assert that we
+	are using goad
+	(bonobo_object_activate_with_repo_id): Nuke
+	(bonobo_object_activate_with_goad_id): Fix bug unrelated to this
+	whole OAF/GOAD thing, activation flags were not being passed
+	through
+	(bonobo_object_activate_with_oaf_id): new function for use with OAF
+	(bonobo_object_activate_with_goad_id): change first arg from
+	GoadServerList to gpointer; this arg was ignored anyway, and 
+	of course the whole function is deprecated eventually.
+
+	* bonobo/bonobo-embeddable-factory.c: replace gnorba.h with 
+	bonobo-object-directory.h
+	
+	* bonobo/bonobo-object.c: ditto
+
+	* bonobo/bonobo-moniker-client.c: ditto
+
+	* bonobo/bonobo-main.c: ditto
+
+	* bonobo/bonobo-generic-factory.c: ditto
+	
+	* bonobo/bonobo-selector.h: don't include gnorba.h
+
+	* bonobo/bonobo-object-client.h: don't include gnorba.h
+
+	* bonobo/Makefile.am: handle AM_CONDITIONAL to use OAF or GOAD
+
+	* configure.in: Add the --enable-oaf option
+
 2000-01-26  Martijn van Beers  <martijn@earthling.net>
 
 	* bonobo/bonobo/.cvsignore: s/bonobo/Bonobo/;
Index: configure.in
===================================================================
RCS file: /cvs/gnome/bonobo/configure.in,v
retrieving revision 1.55
diff -u -u -r1.55 configure.in
--- configure.in	2000/01/25 16:34:57	1.55
+++ configure.in	2000/01/25 21:36:42
@@ -23,10 +23,34 @@
 ALL_LINGUAS="da de el es fr gl it ja no pl pt_BR ro ru sv uk wa tr"
 AM_GNOME_GETTEXT
 
+dnl Whether to use OAF
+AC_ARG_ENABLE(oaf, 
+            [  --enable-oaf=[no/yes]      Use OAF instead of GOAD.],,enable_oaf=no)
+
+if test "x$enable_oaf" = "xyes"; then
+        AC_PATH_PROG(OAF_CONFIG,oaf-config,no)
+        if test x$OAF_CONFIG = xno; then
+                AC_MSG_ERROR("You enabled OAF support but oaf-config was not found")
+        else
+                OAF_LIBS=`$OAF_CONFIG --libs`
+                OAF_CFLAGS=`$OAF_CONFIG --cflags`
+                GNORBA_LIBNAME=
+        fi
+else
+        OAF_LIBS=
+        OAF_CFLAGS=
+        GNORBA_LIBNAME=gnorba
+fi
+
+AC_SUBST(OAF_LIBS)
+AC_SUBST(OAF_CFLAGS)
+
+AM_CONDITIONAL(OAF, test "x$enable_oaf" = "xyes")
+
 BONOBO_LIBDIR='-L${libdir}'
 BONOBO_INCLUDEDIR='-I${includedir}'
-BONOBO_INCLUDEDIR="$BONOBO_INCLUDEDIR `$GNOME_CONFIG --cflags gnomeui gnorba`"
-BONOBO_LIBS="-lbonobo `$GNOME_CONFIG --libs gnomeui gnorba`"
+BONOBO_INCLUDEDIR="$BONOBO_INCLUDEDIR `$GNOME_CONFIG --cflags gnomeui $GNORBA_LIBNAME` $OAF_CFLAGS"
+BONOBO_LIBS="-lbonobo `$GNOME_CONFIG --libs gnomeui $GNORBA_LIBNAME` $OAF_LIBS"
 
 AC_SUBST(BONOBO_LIBDIR)
 AC_SUBST(BONOBO_INCLUDEDIR)
Index: nat-convert.pl
===================================================================
RCS file: /cvs/gnome/bonobo/nat-convert.pl,v
retrieving revision 1.2
diff -u -u -r1.2 nat-convert.pl
--- nat-convert.pl	2000/01/25 17:20:48	1.2
+++ nat-convert.pl	2000/01/25 21:36:43
@@ -154,6 +154,7 @@
      s/GnomeBonoboSelector/BonoboSelector/g;
      s/gnome_bonobo_selector/bonobo_selector/g;
 
+     # header names
      s/gnome-bonobo-item.h/bonobo-canvas-item.h/g;
      s/gnome-bind-context.h/bonobo-bind-context.h/g;
      s/gnome-canvas-component.h/bonobo-canvas-component.h/g;
@@ -205,6 +206,58 @@
      s/gnome-property-client.h/gnome-property-client.h/g;
      s/bonobo\/gnome-bonobo.h/bonobo.h/g;
      s/bonobo.idl/Bonobo.idl/g;
+
+     # .c names
+     s/gnome-bonobo-item.c/bonobo-canvas-item.c/g;
+     s/gnome-bind-context.c/bonobo-bind-context.c/g;
+     s/gnome-canvas-component.c/bonobo-canvas-component.c/g;
+     s/gnome-canvas-item.c/bonobo-canvas-item.c/g;
+     s/gnome-client-site.c/bonobo-client-site.c/g;
+     s/gnome-component-directory.c/bonobo-component-directory.c/g;
+     s/gnome-component-io.c/bonobo-component-io.c/g;
+     s/gnome-composite-moniker.c/bonobo-composite-moniker.c/g;
+     s/gnome-container.c/bonobo-container.c/g;
+     s/gnome-control-frame.c/bonobo-control-frame.c/g;
+     s/gnome-control.c/bonobo-control.c/g;
+     s/gnome-desktop-window.c/bonobo-desktop-window.c/g;
+     s/gnome-embeddable-factory.c/bonobo-embeddable-factory.c/g;
+     s/gnome-embeddable.c/bonobo-embeddable.c/g;
+     s/gnome-file-moniker.c/bonobo-file-moniker.c/g;
+     s/gnome-generic-factory.c/bonobo-generic-factory.c/g;
+     s/gnome-item-moniker.c/bonobo-item-moniker.c/g;
+     s/gnome-local-property-bag.c/bonobo-local-property-bag.c/g;
+     s/gnome-main.c/bonobo-main.c/g;
+     s/gnome-moniker-client.c/bonobo-moniker-client.c/g;
+     s/gnome-moniker.c/bonobo-moniker.c/g;
+     s/gnome-object-client.c/bonobo-object-client.c/g;
+     s/gnome-object-io.c/bonobo-object-io.c/g;
+     s/gnome-object.c/bonobo-object.c/g;
+     s/gnome-persist-file.c/bonobo-persist-file.c/g;
+     s/gnome-persist-stream.c/bonobo-persist-stream.c/g;
+     s/gnome-persist.c/bonobo-persist.c/g;
+     s/gnome-progressive.c/bonobo-progressive.c/g;
+     s/gnome-property-bag-client.c/bonobo-property-bag-client.c/g;
+     s/gnome-property-bag-xml.c/bonobo-property-bag-xml.c/g;
+     s/gnome-property-bag.c/bonobo-property-bag.c/g;
+     s/gnome-property-types.c/bonobo-property-types.c/g;
+     s/gnome-property.c/bonobo-property.c/g;
+     s/gnome-bonobo-selector.c/bonobo-selector.c/g;
+     s/gnome-simple-source.c/bonobo-simple-source.c/g;
+     s/gnome-storage-driver.c/bonobo-storage-driver.c/g;
+     s/gnome-storage-priv.c/bonobo-storage-priv.c/g;
+     s/gnome-storage-private.c/bonobo-storage-private.c/g;
+     s/gnome-storage.c/bonobo-storage.c/g;
+     s/gnome-stream-client.c/bonobo-stream-client.c/g;
+     s/gnome-stream-fs.c/bonobo-stream-fs.c/g;
+     s/gnome-stream-memory.c/bonobo-stream-memory.c/g;
+     s/gnome-stream.c/bonobo-stream.c/g;
+     s/gnome-ui-handler.c/bonobo-ui-handler.c/g;
+     s/gnome-view-frame.c/bonobo-view-frame.c/g;
+     s/gnome-view.c/bonobo-view.c/g;
+     s/gnome-widget.c/bonobo-widget.c/g;
+     s/gnome-wrapper.c/bonobo-wrapper.c/g;
+     s/gnome-property-client.c/gnome-property-client.c/g;
+     s/bonobo\/gnome-bonobo.c/bonobo.c/g;
 
      s/\"view_activate\"/\"activate\"/g;
      s/\"view_activated\"/\"activated\"/g;
Index: bonobo/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/Makefile.am,v
retrieving revision 1.77
diff -u -u -r1.77 Makefile.am
--- bonobo/Makefile.am	2000/01/25 16:34:58	1.77
+++ bonobo/Makefile.am	2000/01/25 21:36:43
@@ -2,6 +2,14 @@
 
 corba_DATA = sample.gnorba item.gnorba
 
+if OAF
+OBJECT_DIRECTORY_LIBS=$(OAF_LIBS)
+OBJECT_DIRECTORY_IMPL=bonobo-object-directory-oaf.c
+else
+OBJECT_DIRECTORY_LIBS=$(GNOMEGNORBA_LIBS)
+OBJECT_DIRECTORY_IMPL=bonobo-object-directory-goad.c
+endif
+
 INCLUDES =                                              \
         -DGNOMELOCALEDIR=\""$(datadir)/locale"\"        \
 	-DSTORAGE_LIB=\""$(libdir)"\"			\
@@ -15,7 +23,7 @@
 gnome_libs =			\
 	$(GNOME_LIBDIR)		\
         $(GNOMEUI_LIBS)		\
-	$(GNOMEGNORBA_LIBS)	\
+	$(OBJECT_DIRECTORY_LIBS) \
 	$(INTLLIBS)
 
 bonobo_libs = 			\
@@ -24,7 +32,11 @@
 
 
 lib_LTLIBRARIES = libbonobo.la libbonobo-xml.la
-noinst_PROGRAMS = 		\
+
+if OAF
+test_programs =
+else
+test_programs = \
 	test-container 		\
 	sample-server 		\
 	sample-item 		\
@@ -32,6 +44,10 @@
 	selector_test		\
 	test-storage		\
 	test-bw
+endif
+
+noinst_PROGRAMS = 		\
+	$(test_programs)
 
 CORBA_SOURCE =			\
 	Bonobo.h		\
@@ -62,6 +78,9 @@
 
 libbonobo_la_SOURCES =			\
 	$(CORBA_SOURCE)			\
+	bonobo-object-directory.h	\
+	bonobo-object-directory.c	\
+	$(OBJECT_DIRECTORY_IMPL)	\
 	bonobo-ui-handler.c		\
 	bonobo-canvas-item.c		\
 	bonobo-selector.c		\
Index: bonobo/bonobo-embeddable-factory.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-embeddable-factory.c,v
retrieving revision 1.29
diff -u -u -r1.29 bonobo-embeddable-factory.c
--- bonobo/bonobo-embeddable-factory.c	2000/01/25 11:35:42	1.29
+++ bonobo/bonobo-embeddable-factory.c	2000/01/25 21:36:51
@@ -16,10 +16,10 @@
 #include <config.h>
 #include <gtk/gtksignal.h>
 #include <gtk/gtkmarshal.h>
-#include <libgnorba/gnorba.h>
 #include <bonobo/Bonobo.h>
 #include <bonobo/bonobo-main.h>
 #include <bonobo/bonobo-embeddable-factory.h>
+#include "bonobo-object-directory.h"
 
 POA_Bonobo_GenericFactory__vepv bonobo_embeddable_factory_vepv;
 
Index: bonobo/bonobo-generic-factory.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-generic-factory.c,v
retrieving revision 1.8
diff -u -u -r1.8 bonobo-generic-factory.c
--- bonobo/bonobo-generic-factory.c	2000/01/25 11:35:43	1.8
+++ bonobo/bonobo-generic-factory.c	2000/01/25 21:36:51
@@ -16,10 +16,10 @@
 #include <config.h>
 #include <gtk/gtksignal.h>
 #include <gtk/gtkmarshal.h>
-#include <libgnorba/gnorba.h>
 #include <bonobo/Bonobo.h>
 #include <bonobo/bonobo-main.h>
 #include <bonobo/bonobo-generic-factory.h>
+#include "bonobo-object-directory.h"
 
 POA_Bonobo_GenericFactory__vepv bonobo_generic_factory_vepv;
 
@@ -37,7 +37,7 @@
 static CORBA_Object
 impl_Bonobo_GenericFactory_create_object (PortableServer_Servant  servant,
 					 const CORBA_char       *obj_goad_id,
-					 const GNOME_stringlist *params,
+					 const Bonobo_stringlist *params,
 					 CORBA_Environment      *ev)
 {
 	BonoboGenericFactoryClass *class;
@@ -116,13 +116,11 @@
 
 	CORBA_exception_init (&ev);
 
-	ret = goad_server_register (
-		NULL, corba_factory, c_factory->goad_id, "server",
-		&ev);
+	ret = od_server_register (corba_factory, c_factory->goad_id);
 
 	CORBA_exception_free (&ev);
 
-	if (ret != 0){
+	if (ret != OD_REG_SUCCESS){
 		bonobo_object_unref (BONOBO_OBJECT (c_factory));
 		return NULL;
 	}
@@ -215,7 +213,8 @@
 	CORBA_Environment ev;
 
 	CORBA_exception_init (&ev);
-	goad_server_unregister (NULL, c_factory->goad_id, "server", &ev);
+	od_server_unregister (BONOBO_OBJECT(c_factory)->corba_objref,
+			      c_factory->goad_id);
 	CORBA_exception_free (&ev);
 	g_free (c_factory->goad_id);
 	
Index: bonobo/bonobo-main.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-main.c,v
retrieving revision 1.20
diff -u -u -r1.20 bonobo-main.c
--- bonobo/bonobo-main.c	2000/01/25 11:35:43	1.20
+++ bonobo/bonobo-main.c	2000/01/25 21:36:51
@@ -11,8 +11,9 @@
  */
 #include <config.h>
 #include <bonobo/bonobo-main.h>
-#include <libgnorba/gnorba.h>
+#include "bonobo-object-directory.h"
 #include <signal.h>
+#include <gnome.h>
 
 #include <X11/Xlib.h>
 
@@ -183,7 +184,7 @@
 	 * Create the POA.
 	 */
 	if (orb == CORBA_OBJECT_NIL)
-		orb = gnome_CORBA_ORB();
+		orb = od_get_orb();
 	
 	if (CORBA_Object_is_nil ((CORBA_Object)poa, &ev)){
 		poa = (PortableServer_POA)CORBA_ORB_resolve_initial_references (orb, "RootPOA", &ev);
Index: bonobo/bonobo-moniker-client.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-moniker-client.c,v
retrieving revision 1.7
diff -u -u -r1.7 bonobo-moniker-client.c
--- bonobo/bonobo-moniker-client.c	2000/01/25 11:35:43	1.7
+++ bonobo/bonobo-moniker-client.c	2000/01/25 21:36:51
@@ -12,7 +12,8 @@
 #include <bonobo/bonobo-moniker.h>
 #include <bonobo/Bonobo.h>
 #include <bonobo/bonobo-moniker-client.h>
-#include <libgnorba/gnorba.h>
+#include <gtk/gtk.h>
+#include "bonobo-object-directory.h"
 
 /**
  * bonobo_moniker_find_in_naming_service:
Index: bonobo/bonobo-object-client.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-object-client.c,v
retrieving revision 1.31
diff -u -u -r1.31 bonobo-object-client.c
--- bonobo/bonobo-object-client.c	2000/01/25 11:35:43	1.31
+++ bonobo/bonobo-object-client.c	2000/01/25 21:36:51
@@ -14,6 +14,7 @@
 #include <bonobo/bonobo-stream.h>
 #include <bonobo/bonobo-moniker-client.h>
 #include <bonobo/bonobo-stream-fs.h>
+#include "bonobo-object-directory.h"
 
 static BonoboObjectClass *bonobo_object_client_parent_class;
 
@@ -39,31 +40,14 @@
 	return object_client;
 }
 
-/**
- * bonobo_object_activate_with_repo_id:
- * @list: Preloaded list of servers or NULL.
- * @repo_id: CORBA interface repository id that we want to activate.
- * @flags: Goad activation flags.
- * @params: parameters passed to the factory
- *
- * Activates a service and wraps it on the BonoboObjectClient object.
- * The service activated should support the GNOME::object interface.
- *
- * This routine used goad_server_activate_with_repo_id() routine from
- * libgnorba.
- */
-BonoboObjectClient *
-bonobo_object_activate_with_repo_id (GoadServerList *list,
-				    const char *repo_id,
-				    GoadActivationFlags flags,
-				    const char **params)
+static BonoboObjectClient *
+bonobo_object_activate_with_either_id(const gchar* iid,
+				     gint flags)
 {
 	CORBA_Object corba_object;
 	BonoboObjectClient *object;
-
-	g_warning ("Activating objects by repo_id is a bad idea, try using the goad_id instead");
 	
-	corba_object = goad_server_activate_with_repo_id (NULL, repo_id, 0, NULL);
+	corba_object = od_server_activate_with_id (iid, flags, NULL);
 	if (corba_object == CORBA_OBJECT_NIL)
 		return NULL;
 	
@@ -75,7 +59,7 @@
 
 /**
  * bonobo_object_activate_with_goad_id:
- * @list: Preloaded list of servers or NULL.
+ * @dummy: obsolete, ignored.
  * @goad_id: GOAD service identification.
  * @flags: Goad activation flags.
  * @params: parameters passed to the factory
@@ -87,22 +71,34 @@
  * libgnorba.
  */
 BonoboObjectClient *
-bonobo_object_activate_with_goad_id (GoadServerList *list,
+bonobo_object_activate_with_goad_id (gpointer dummy,
 				    const char *goad_id,
-				    GoadActivationFlags flags,
+				    gint flags,
 				    const char **params)
 {
-	CORBA_Object corba_object;
-	BonoboObjectClient *object;
+	od_assert_using_goad();
 
-	corba_object = goad_server_activate_with_id (NULL, goad_id, 0, NULL);
-	if (corba_object == CORBA_OBJECT_NIL)
-		return NULL;
-	
-	object = gtk_type_new (bonobo_object_client_get_type ());
-	bonobo_object_client_construct (object, corba_object);
+	return bonobo_object_activate_with_either_id(goad_id, flags);
+}
 
-	return object;
+/**
+ * bonobo_object_activate_with_oaf_id:
+ * @list: Preloaded list of servers or NULL.
+ * @oaf_id: OAF IID 
+ * @flags: OAF activation flags
+ * @params: parameters passed to the factory
+ *
+ * Activates the service represented by @oaf_id.
+ * The service activated should support the GNOME::object interface.
+ *
+ */
+BonoboObjectClient *
+bonobo_object_activate_with_oaf_id (const char *oaf_id,
+				   gint flags)
+{
+	od_assert_using_oaf();
+	
+	return bonobo_object_activate_with_either_id(oaf_id, flags);
 }
 
 static GList *
@@ -137,7 +133,7 @@
 }
 
 Bonobo_Unknown
-bonobo_object_restore_from_url (const char *goad_id, const char *url)
+bonobo_object_restore_from_url (const char *iid, const char *url)
 {
 #define bonobo_object_restore_from_url_defined_here
 	CORBA_Object rtn = CORBA_OBJECT_NIL;
@@ -148,19 +144,20 @@
 	name = g_strdup_printf ("url_moniker!%s", url);
 	
 	/* 1. Check the naming service to see if we're already available */
-	rtn = bonobo_moniker_find_in_naming_service (name, goad_id);
+	rtn = bonobo_moniker_find_in_naming_service (name, iid);
 
 	if (!rtn) {
-		/* 2. fire up that object specified by the goad_id  */
-		rtn = goad_server_activate_with_id (
-			NULL,		/* name_server list */
-			goad_id,	/* server to activate */
-			0,		/* GoadActivationFlags */
-			0);		/* params for activation */
+		/* 2. fire up that object specified by the iid  */
+		CORBA_exception_init (&ev);
+		
+		rtn = od_server_activate_with_id (
+			iid,	/* server to activate */
+			0,		/* ActivationFlags */
+			&ev);	
 		
 		g_free (name);
 
-		CORBA_exception_init (&ev);
+
 
 		if (CORBA_Object_is_nil (rtn, &ev)) /* bail */ {
 
@@ -250,13 +247,13 @@
 /**
  * bonobo_object_activate:
  * @object_desc: Either a string representation of an object moniker
- * or an object goad id.
+ * or an object ID (GOAD ID or OAF ID depending on Bonobo compilation).
  * @flags: activation flags
  *
  * Returns: An object created.
  */
 BonoboObjectClient *
-bonobo_object_activate (const char *object_desc, GoadActivationFlags flags)
+bonobo_object_activate (const char *object_desc, gint flags)
 {
 	CORBA_Environment ev;
 	Bonobo_Unknown obj, last;
@@ -266,7 +263,7 @@
 	g_return_val_if_fail (object_desc != NULL, NULL);
 
 	if (strncmp (object_desc, "moniker_url:", 12) != 0)
-		return bonobo_object_activate_with_goad_id (NULL, object_desc, flags, NULL);
+		return bonobo_object_activate_with_either_id (object_desc, flags);
 
 	moniker_info = parse_moniker_string (object_desc + 12);
 	if (g_list_length (moniker_info) < 2){
@@ -379,8 +376,8 @@
 	}
 
 	interface = Bonobo_Unknown_query_interface (
-		bonobo_object_corba_objref (BONOBO_OBJECT (object)),
-		interface_desc, ev);
+						   bonobo_object_corba_objref (BONOBO_OBJECT (object)),
+						   interface_desc, ev);
 	
         if (ev->_major != CORBA_NO_EXCEPTION) {
 		bonobo_object_check_env (BONOBO_OBJECT (object),
Index: bonobo/bonobo-object-client.h
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-object-client.h,v
retrieving revision 1.13
diff -u -u -r1.13 bonobo-object-client.h
--- bonobo/bonobo-object-client.h	2000/01/25 11:35:43	1.13
+++ bonobo/bonobo-object-client.h	2000/01/25 21:36:51
@@ -5,7 +5,6 @@
 #include <libgnome/gnome-defs.h>
 #include <gtk/gtkobject.h>
 #include <bonobo/Bonobo.h>
-#include <libgnorba/gnorba.h>
 #include <bonobo/bonobo-object.h>
 
 #define BONOBO_OBJECT_CLIENT_TYPE        (bonobo_object_client_get_type ())
@@ -28,15 +27,13 @@
 							CORBA_Object corba_object);
 
 BonoboObjectClient *bonobo_object_activate               (const char *object_desc,
-							GoadActivationFlags flags);
-BonoboObjectClient *bonobo_object_activate_with_repo_id  (GoadServerList *list,
-							const char *repo_id,
-							GoadActivationFlags flags,
-							const char **params);
-BonoboObjectClient *bonobo_object_activate_with_goad_id  (GoadServerList *list,
+							gint oaf_or_goad_flags);
+BonoboObjectClient *bonobo_object_activate_with_goad_id  (gpointer dummy,
 							const char *goad_id,
-							GoadActivationFlags flags,
+							gint        goad_flags,
 							const char **params);
+BonoboObjectClient *bonobo_object_activate_with_oaf_id   (const char *oaf_id,
+							gint flags);
 Bonobo_Unknown      bonobo_object_restore_from_url       (const char *goad_id,
 							const char *url);
 BonoboObjectClient *bonobo_object_client_from_corba      (Bonobo_Unknown o);
Index: bonobo/bonobo-object-directory-goad.c
===================================================================
RCS file: bonobo-object-directory-goad.c
diff -N bonobo-object-directory-goad.c
--- /dev/null	Tue May  5 16:32:27 1998
+++ bonobo-object-directory-goad.c	Tue Jan 25 16:36:51 2000
@@ -0,0 +1,142 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 c-set-style: linux -*- */
+
+#include "bonobo-object-directory.h"
+#include <libgnorba/gnorba.h>
+
+CORBA_ORB
+od_get_orb                     (void)
+{
+	return gnome_CORBA_ORB();
+}
+
+static gboolean
+stringlist_contains (gchar **list, const gchar *word)
+{
+	int i = 0;
+	
+	if (list == NULL)
+                return FALSE;
+	
+	while (list[i] != NULL) {
+		if (strcmp (list[i], word) == 0) {
+			return TRUE;
+		}
+		i++;
+	}
+	return FALSE;
+}
+
+GList*
+od_get_server_list             (const gchar      **required_ids)
+{
+        GList *retval = NULL;
+        GoadServerList *goad_list;
+        guint i;
+        guint n_required = 0;
+        const gchar** iter;
+
+        iter = required_ids;
+        while (*iter) {
+                ++n_required;
+                
+                ++iter;
+        }
+        
+        goad_list = goad_server_list_get();
+
+        i = 0;
+
+        while (goad_list->list[i].repo_id != NULL) {
+                guint num = 0, j = 0;
+		
+		for (j = 0; j < n_required; j++) {
+			if (stringlist_contains (goad_list->list[i].repo_id,
+                                                 required_ids[j])) {
+				num++;
+			}
+		}
+
+		if (num == n_required) {  /* We have a match! */
+                        ODServerInfo *info;
+
+                        info = od_server_info_new(goad_list->list[i].server_id,
+                                                  goad_list->list[i].description);
+                        retval = g_list_prepend(retval, info);
+		}
+
+                ++i;
+        }
+
+        retval = g_list_reverse(retval);
+
+        return retval;
+}
+
+CORBA_Object
+od_server_activate_with_id     (const gchar       *iid,
+				gint               flags,
+                                CORBA_Environment *ev)
+{
+        return goad_server_activate_with_id(NULL, iid, flags, NULL);
+}
+
+ODRegistrationResult
+od_server_register             (CORBA_Object       objref,
+                                const gchar       *iid)
+{
+        gint result;
+        CORBA_Environment ev;
+
+        CORBA_exception_init(&ev);
+        
+        result = goad_server_register(NULL, objref, iid, "server", &ev);
+
+        CORBA_exception_free(&ev);
+
+        switch (result) {
+        case 0:
+                return OD_REG_SUCCESS;
+                break;
+
+        case -2:
+                return OD_REG_ALREADY_ACTIVE;
+                break;
+
+        default:
+                return OD_REG_ERROR;
+                break;
+        }
+}
+
+ODRegistrationResult
+od_server_unregister           (CORBA_Object       objref,
+                                const gchar       *iid)
+{
+        gint result;
+        CORBA_Environment ev;
+
+        CORBA_exception_init(&ev);
+        
+        result = goad_server_unregister(NULL, iid, "server", &ev);
+
+        CORBA_exception_free(&ev);
+        
+        if (result < 0)
+                return OD_REG_ERROR;
+        else
+                return OD_REG_SUCCESS;
+}
+
+void
+od_assert_using_goad (void)
+{
+        return;
+}
+
+void
+od_assert_using_oaf  (void)
+{
+        g_warning("Your Bonobo library is compiled to use GOAD (from gnome-libs 1.0)\n"
+                  "This program requires a Bonobo compiled to use OAF instead.");
+        exit(1);
+}
Index: bonobo/bonobo-object-directory-oaf.c
===================================================================
RCS file: bonobo-object-directory-oaf.c
diff -N bonobo-object-directory-oaf.c
--- /dev/null	Tue May  5 16:32:27 1998
+++ bonobo-object-directory-oaf.c	Tue Jan 25 16:36:51 2000
@@ -0,0 +1,152 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 c-set-style: linux -*- */
+
+#include "bonobo-object-directory.h"
+#include <liboaf/liboaf.h>
+
+CORBA_ORB
+od_get_orb                     (void)
+{
+	return oaf_orb_get();
+}
+
+GList*
+od_get_server_list             (const gchar      **required_ids)
+{
+        GList *retval = NULL;
+        gchar *query;
+        const gchar** iter;
+        guint n_required = 0;
+        gchar **query_components;
+        OAF_ServerInfoList *servers;
+        CORBA_Environment ev;
+        guint i;
+        
+        g_return_val_if_fail(required_ids != NULL, NULL);
+        g_return_val_if_fail(*required_ids != NULL, NULL);
+
+        /* We need to build a query up from the required_ids */
+        iter = required_ids;
+
+        while (*iter) {
+                ++n_required;
+                ++iter;
+        }
+
+        query_components = g_new0(gchar*, n_required+1);
+        
+        iter = required_ids;
+
+        while (*iter) {
+                *query_components = g_strconcat("repo_ids.has(",
+                                                *iter,
+                                                ")",
+                                                NULL);
+                ++iter;
+        }
+
+        query = g_strjoinv(" and ", query_components);
+
+        printf("OAF query: %s\n", query); /* debug spew */
+
+        g_strfreev(query_components);
+
+        CORBA_exception_init(&ev);
+        servers = oaf_query(query, NULL, &ev);
+        g_free(query);
+        CORBA_exception_free(&ev);
+
+        if (servers == NULL)
+                return NULL;
+
+        i = 0;
+        while (i < servers->_length) {
+                OAF_ServerInfo *oafinfo = &servers->_buffer[i];
+                ODServerInfo *info;
+
+                info = od_server_info_new(oafinfo->iid,
+                                          "OAF servers have no description?");
+
+                retval = g_list_prepend(retval, info);
+
+                ++i;
+        }
+
+        CORBA_free(servers);
+        
+        retval = g_list_reverse(retval);
+        
+        return retval;
+}
+
+CORBA_Object
+od_server_activate_with_id     (const gchar       *iid,
+				gint               flags,
+                                CORBA_Environment *ev)
+{
+	CORBA_Environment myev;
+	CORBA_Object retval;
+	
+	CORBA_exception_init(&myev);
+	
+	if (ev == NULL) {
+		ev = &myev;
+	}
+		
+	retval = oaf_activate_from_id(iid, 0, NULL, ev);
+
+	CORBA_exception_free(ev);
+	
+	return retval;
+}
+
+ODRegistrationResult
+od_server_register             (CORBA_Object       objref,
+                                const gchar       *iid)
+{
+        OAF_RegistrationResult result;
+
+
+        result = oaf_active_server_register(iid, objref);
+
+        switch (result) {
+        case OAF_REG_SUCCESS:
+                return OD_REG_SUCCESS;
+                break;
+                
+        case OAF_REG_NOT_LISTED:
+                return OD_REG_NOT_LISTED;
+                break;
+
+        case OAF_REG_ALREADY_ACTIVE:
+                return OD_REG_ALREADY_ACTIVE;
+                break;
+
+        case OAF_REG_ERROR:
+        default:
+                return OD_REG_ERROR;
+                break;
+        }
+}
+
+ODRegistrationResult
+od_server_unregister           (CORBA_Object       objref,
+                                const gchar       *iid)
+{
+        oaf_active_server_unregister(iid, objref);
+        
+        return OD_REG_SUCCESS;
+}
+
+void
+od_assert_using_goad (void)
+{
+        g_warning("Your Bonobo library is compiled to use OAF\n"
+                  "This program requires a Bonobo compiled to use GOAD from gnome-libs 1.0 instead.");
+        exit(1);
+}
+
+void
+od_assert_using_oaf  (void)
+{
+        return;
+}
Index: bonobo/bonobo-object-directory.c
===================================================================
RCS file: bonobo-object-directory.c
diff -N bonobo-object-directory.c
--- /dev/null	Tue May  5 16:32:27 1998
+++ bonobo-object-directory.c	Tue Jan 25 16:36:51 2000
@@ -0,0 +1,72 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 c-set-style: linux -*- */
+
+#include "bonobo-object-directory.h"
+
+struct _ODServerInfo {
+        guint refcount;
+        gchar* iid;
+        gchar* desc;
+};
+
+ODServerInfo*
+od_server_info_new(const gchar* iid, const gchar* desc)
+{
+        ODServerInfo *info;
+
+        info = g_new(ODServerInfo, 1);
+
+        info->refcount = 1;
+        info->iid = iid ? g_strdup(iid) : NULL;
+        info->desc = desc ? g_strdup(desc) : NULL;
+
+        return info;
+}
+
+const gchar*
+od_server_info_get_id          (ODServerInfo      *info)
+{
+        return info->iid;
+}
+
+const gchar*
+od_server_info_get_description (ODServerInfo      *info)
+{
+        return info->desc;
+}
+
+void
+od_server_info_ref             (ODServerInfo      *info)
+{
+        info->refcount += 1;
+}
+
+void
+od_server_info_unref           (ODServerInfo      *info)
+{
+        g_return_if_fail(info != NULL);
+        g_return_if_fail(info->refcount > 0);
+
+        info->refcount -= 1;
+
+        if (info->refcount == 0) {
+                g_free(info->iid);
+                g_free(info->desc);
+                g_free(info);
+        }
+}
+
+void
+od_server_list_free            (GList             *list)
+{
+        GList *iter;
+
+        iter = list;
+
+        while (iter != NULL) {
+                od_server_info_unref(iter->data);
+                
+                iter = g_list_next(iter);
+        }
+
+        g_list_free(list);
+}
Index: bonobo/bonobo-object-directory.h
===================================================================
RCS file: bonobo-object-directory.h
diff -N bonobo-object-directory.h
--- /dev/null	Tue May  5 16:32:27 1998
+++ bonobo-object-directory.h	Tue Jan 25 16:36:52 2000
@@ -0,0 +1,56 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 c-set-style: linux -*- */
+#ifndef __BONOBO_OBJECT_DIRECTORY_H__
+#define __BONOBO_OBJECT_DIRECTORY_H__
+
+#include <glib.h>
+#include <libgnome/gnome-defs.h>
+#include <orb/orbit.h>
+#include <ORBitservices/CosNaming.h>
+
+BEGIN_GNOME_DECLS
+
+/* This file provides an abstraction of the object directory Bonobo
+   will use (GOAD or OAF). However, the object directory is not
+   dynamically loaded or anything like that; it must be selected
+   at compile time. This is a private, non-installed API.
+*/
+
+typedef struct _ODServerInfo ODServerInfo;
+
+typedef enum {
+        OD_REG_SUCCESS,
+        OD_REG_NOT_LISTED,
+        OD_REG_ALREADY_ACTIVE,
+        OD_REG_ERROR
+} ODRegistrationResult;
+
+CORBA_ORB            od_get_orb                     (void);
+
+ODServerInfo        *od_server_info_new             (const gchar       *iid,
+                                                     const gchar       *desc);
+const gchar         *od_server_info_get_id          (ODServerInfo      *info);
+const gchar         *od_server_info_get_description (ODServerInfo      *info);
+void                 od_server_info_ref             (ODServerInfo      *info);
+void                 od_server_info_unref           (ODServerInfo      *info);
+
+
+
+/* returns list of ODServerInfo */
+GList               *od_get_server_list             (const gchar      **required_ids);
+void                 od_server_list_free            (GList             *list);
+CORBA_Object         od_server_activate_with_id     (const gchar       *iid,
+						     gint               flags,
+                                                     CORBA_Environment *ev);
+ODRegistrationResult od_server_register             (CORBA_Object       objref,
+                                                     const gchar       *iid);
+ODRegistrationResult od_server_unregister           (CORBA_Object       objref,
+						     const gchar       *iid);
+void                 od_assert_using_goad           (void);
+void                 od_assert_using_oaf            (void);
+
+
+END_GNOME_DECLS
+
+#endif /* __BONOBO_OBJECT_DIRECTORY_H__ */
+
+
Index: bonobo/bonobo-object.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-object.c,v
retrieving revision 1.52
diff -u -u -r1.52 bonobo-object.c
--- bonobo/bonobo-object.c	2000/01/25 11:35:43	1.52
+++ bonobo/bonobo-object.c	2000/01/25 21:36:52
@@ -11,10 +11,10 @@
 #include <gtk/gtksignal.h>
 #include <gtk/gtkmarshal.h>
 #include <gtk/gtktypeutils.h>
-#include <libgnorba/gnorba.h>
 #include <bonobo/bonobo-main.h>
 #include <bonobo/bonobo-object.h>
 #include "Bonobo.h"
+#include "bonobo-object-directory.h"
 
 POA_Bonobo_Unknown__vepv bonobo_object_vepv;
 
Index: bonobo/bonobo-selector.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-selector.c,v
retrieving revision 1.18
diff -u -u -r1.18 bonobo-selector.c
--- bonobo/bonobo-selector.c	2000/01/25 11:35:45	1.18
+++ bonobo/bonobo-selector.c	2000/01/25 21:37:01
@@ -2,6 +2,8 @@
 #include <config.h>
 #include "bonobo-selector.h"
 #include <string.h> /* strcmp */
+#include <gnome.h>
+#include "bonobo-object-directory.h"
 
 #define DEFAULT_INTERFACE	"IDL:GNOME/Embeddable:1.0"
 
@@ -10,7 +12,7 @@
 struct _BonoboSelectorPrivate 
 {
 	GtkWidget *clist;
-	GoadServerList *servers;
+	GList *servers;
 	int n_servers;
 	const gchar **interfaces_required;
 };
@@ -32,7 +34,6 @@
 static void cancel_callback (GtkWidget *widget, gpointer data);
 static void add_gnorba_objects (BonoboSelector *widget); 
 static GList *get_filtered_objects (BonoboSelector *widget);
-static gboolean stringlist_contains (gchar **list, const gchar *word);
 
 
 /* fixme: revove this as soon it is included in gnome-dialog */
@@ -145,7 +146,7 @@
 	priv = sel->priv;
 
 	gtk_widget_destroy (priv->clist);
-	goad_server_list_free (priv->servers);
+	od_server_list_free (priv->servers);
 	g_free (priv);
 
 	if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -153,21 +154,14 @@
 	
 }
 
-/**
- * bonobo_selector_get_selected_goad_id:
- * @sel: A BonoboSelector widget.
- *
- * Returns: A newly-allocated string containing the GOAD ID of the
- * currently-selected CORBA server (i.e., the corba server whose
- * name is highlighted in the list).  The user of this function is
- * responsible for freeing this.
- */
-gchar *
-bonobo_selector_get_selected_goad_id (BonoboSelector *sel)
+static gchar *
+bonobo_selector_get_selected_id (BonoboSelector *sel)
 {
 	GList *selection;
 	gchar *text;
 	BonoboSelectorPrivate *priv; 
+
+	od_assert_using_goad();
 	
 	g_return_val_if_fail (sel != NULL, NULL);
 	priv = sel->priv;	
@@ -179,23 +173,9 @@
 	return g_strdup (text);
 }
 
-/**
- * gnome_bonobo_select_goad_id:
- * @title: The title to be used for the dialog.
- * @interfaces_required: A list of required interfaces.  See
- * bonobo_selector_new().
- *
- * Calls bonobo_selector_new() to create a new
- * BonoboSelector widget with the specified paramters, @title and
- * @interfaces_required.  Then runs the dialog modally and allows
- * the user to make a selection.
- *
- * Returns: The GOAD ID of the selected server, or NULL if no server
- * is selected.  The GOAD ID string has been allocated with g_strdup
- */
-gchar *
-gnome_bonobo_select_goad_id (const gchar *title,
-			     const gchar **interfaces_required)
+static gchar *
+gnome_bonobo_select_id (const gchar *title,
+			const gchar **interfaces_required)
 {
 	GtkWidget *sel = bonobo_selector_new (title, interfaces_required);
 	gchar *name = NULL;
@@ -224,6 +204,82 @@
 	return name;
 }
 
+/**
+ * bonobo_selector_get_selected_goad_id:
+ * @sel: A BonoboSelector widget.
+ *
+ * Returns: A newly-allocated string containing the GOAD ID of the
+ * currently-selected CORBA server (i.e., the corba server whose
+ * name is highlighted in the list).  The user of this function is
+ * responsible for freeing this.
+ */
+gchar *
+bonobo_selector_get_selected_goad_id (BonoboSelector *sel)
+{
+	od_assert_using_goad();
+	return bonobo_selector_get_selected_id(sel);
+}
+
+/**
+ * gnome_bonobo_select_goad_id:
+ * @title: The title to be used for the dialog.
+ * @interfaces_required: A list of required interfaces.  See
+ * bonobo_selector_new().
+ *
+ * Calls bonobo_selector_new() to create a new
+ * BonoboSelector widget with the specified paramters, @title and
+ * @interfaces_required.  Then runs the dialog modally and allows
+ * the user to make a selection.
+ *
+ * Returns: The GOAD ID of the selected server, or NULL if no server
+ * is selected.  The GOAD ID string has been allocated with g_strdup
+ */
+gchar *
+gnome_bonobo_select_goad_id (const gchar *title,
+			     const gchar **interfaces_required)
+{
+	od_assert_using_goad();
+	return gnome_bonobo_select_id(title, interfaces_required);
+}
+
+/**
+ * bonobo_selector_get_selected_oaf_id:
+ * @sel: A BonoboSelector widget.
+ *
+ * Returns: A newly-allocated string containing the OAF ID of the
+ * currently-selected CORBA server (i.e., the corba server whose
+ * name is highlighted in the list).  The user of this function is
+ * responsible for freeing this.
+ */
+gchar *
+bonobo_selector_get_selected_oaf_id (BonoboSelector *sel)
+{
+	od_assert_using_oaf();
+	return bonobo_selector_get_selected_id(sel);
+}
+
+/**
+ * gnome_bonobo_select_oaf_id:
+ * @title: The title to be used for the dialog.
+ * @interfaces_required: A list of required interfaces.  See
+ * bonobo_selector_new().
+ *
+ * Calls bonobo_selector_new() to create a new
+ * BonoboSelector widget with the specified paramters, @title and
+ * @interfaces_required.  Then runs the dialog modally and allows
+ * the user to make a selection.
+ *
+ * Returns: The OAF ID of the selected server, or NULL if no server
+ * is selected.  The OAF ID string has been allocated with g_strdup
+ */
+gchar *
+gnome_bonobo_select_oaf_id (const gchar *title,
+			     const gchar **interfaces_required)
+{
+	od_assert_using_oaf();
+	return gnome_bonobo_select_id(title, interfaces_required);
+}
+
 static void
 button_callback (GtkWidget *widget, gint button_number,
 		 gpointer data) 
@@ -245,7 +301,7 @@
 static void
 ok_callback (GtkWidget *widget, gpointer data)
 {
-	char *text = bonobo_selector_get_selected_goad_id (
+	char *text = bonobo_selector_get_selected_id (
 		BONOBO_SELECTOR (widget));
 	gtk_object_set_user_data (GTK_OBJECT (widget), text);
 	gtk_main_quit ();
@@ -278,7 +334,7 @@
 	BonoboSelector *sel = BONOBO_SELECTOR (widget);
 	GtkWidget *scrolled;
 	BonoboSelectorPrivate *priv;
-	gchar *titles[] = { N_("Bonobo object description"), "goadid", NULL };
+	gchar *titles[] = { N_("Bonobo object description"), "ID", NULL };
 	
 	g_return_if_fail (widget != NULL);
 	
@@ -319,7 +375,7 @@
 static void
 add_gnorba_objects (BonoboSelector *widget) 
 {
-	gchar *text[3];
+	const gchar *text[3];
 	GList *list = NULL;
 	BonoboSelectorPrivate *priv;
 	
@@ -344,9 +400,9 @@
 	
 	while (list != NULL)  
 	{
-		text[0] = ( (GoadServer *)list->data)->description;
-		text[1] = ( (GoadServer *)list->data)->server_id;
-		gtk_clist_append (GTK_CLIST (priv->clist), text);
+		text[0] = od_server_info_get_description(list->data);
+		text[1] = od_server_info_get_id(list->data);
+		gtk_clist_append (GTK_CLIST (priv->clist), (gchar**)text);
 		priv->n_servers++;
 		list = list->next;  	
 	}
@@ -357,79 +413,37 @@
 static GList *
 get_filtered_objects (BonoboSelector *widget) 
 {
-	int i = 0, j = 0, num = 0;
+	int i = 0;
 	const gchar **inters;
 	GList *objects = NULL;
-	int n_inters = 0;
-	int n_objects = 0;
 	BonoboSelectorPrivate *priv;
+	int n_inters = 0;
 	
 	g_return_val_if_fail (widget != NULL, NULL);
 
 	priv = widget->priv;
-	
-	priv->servers = goad_server_list_get ();
-	if (priv->servers == NULL) return NULL;
 
-	if (priv->interfaces_required == NULL) 
-	{
+	if (priv->interfaces_required == NULL) {
 		inters = g_malloc (sizeof (gpointer) * 2);
 		inters[0] = DEFAULT_INTERFACE;
 		inters[1] = NULL;
 		n_inters = 1;
-	} 
-	else 
-	{	
+	} else {	
 		inters = priv->interfaces_required;
-		while (inters[i] != NULL)
-		{
+		while (inters[i] != NULL) {
 			n_inters++;
 			i++;
 		}
 	}
-	
-	while (priv->servers->list[i].repo_id != NULL)
-	{
-		num = 0;
-		
-		for (j = 0; j < n_inters; j++) 
-		{
-			if (stringlist_contains (
-				priv->servers->list[i].repo_id, inters[j]))
-			{
-				num++;
-			}
-		}
-		if (num == n_inters) /* We have a match! */
-		{
-			objects = g_list_prepend (objects, 
-				&priv->servers->list[i]);
-			n_objects++;
-		}
-		i++;
-	}
-	objects = g_list_reverse (objects);
 
-	/* Free our temporary criteria */
-	if (priv->interfaces_required == NULL) g_free (inters); 
-	
-	return objects;
-}
+	priv->servers = od_get_server_list(inters);
 
-static gboolean
-stringlist_contains (gchar **list, const gchar *word)
-{
-	int i = 0;
-	
-	if (list == NULL) return FALSE;
+	/* Free our temporary criteria */
+	if (priv->interfaces_required == NULL)
+		g_free (inters);
 	
-	while (list[i] != NULL) 
-	{
-		if (strcmp (list[i], word) == 0) 
-		{
-			return TRUE;
-		}
-		i++;
-	}
-	return FALSE;
+	if (priv->servers == NULL)
+		return NULL;
+	else
+		return objects;
 }
Index: bonobo/bonobo-selector.h
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-selector.h,v
retrieving revision 1.9
diff -u -u -r1.9 bonobo-selector.h
--- bonobo/bonobo-selector.h	2000/01/25 11:35:45	1.9
+++ bonobo/bonobo-selector.h	2000/01/25 21:37:01
@@ -4,7 +4,6 @@
 
 
 #include <gtk/gtk.h>
-#include <libgnorba/gnorba.h>
 #include <libgnomeui/gnome-dialog.h>
 
 BEGIN_GNOME_DECLS
@@ -38,6 +37,10 @@
 							 const gchar **interfaces_required);
 gchar	   *bonobo_selector_get_selected_goad_id  (BonoboSelector *sel);
 gchar	   *gnome_bonobo_select_goad_id			(const gchar *title,
+							 const gchar **interfaces_required);
+
+gchar	   *bonobo_selector_get_selected_oaf_id   (BonoboSelector *sel);
+gchar	   *gnome_bonobo_select_oaf_id                  (const gchar *title,
 							 const gchar **interfaces_required);
 
 END_GNOME_DECLS
Index: bonobo/bonobo-view-frame.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-view-frame.c,v
retrieving revision 1.37
diff -u -u -r1.37 bonobo-view-frame.c
--- bonobo/bonobo-view-frame.c	2000/01/25 11:35:46	1.37
+++ bonobo/bonobo-view-frame.c	2000/01/25 21:37:01
@@ -17,6 +17,7 @@
 #include <bonobo/bonobo-view-frame.h>
 #include <gdk/gdkprivate.h>
 #include <libgnomeui/gnome-canvas.h>
+#include <gdk/gdkkeysyms.h>
 
 enum {
 	USER_ACTIVATE,
Index: bonobo/bonobo-widget.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/bonobo-widget.c,v
retrieving revision 1.13
diff -u -u -r1.13 bonobo-widget.c
--- bonobo/bonobo-widget.c	2000/01/25 16:34:59	1.13
+++ bonobo/bonobo-widget.c	2000/01/25 21:37:01
@@ -81,7 +81,7 @@
 {
 	BonoboObjectClient *server;
 
-	server = bonobo_object_activate (object_desc, (GoadActivationFlags) 0);
+	server = bonobo_object_activate (object_desc, 0);
 
 	return server;
 }
Index: bonobo/test-bw.c
===================================================================
RCS file: /cvs/gnome/bonobo/bonobo/test-bw.c,v
retrieving revision 1.5
diff -u -u -r1.5 test-bw.c
--- bonobo/test-bw.c	2000/01/25 11:35:52	1.5
+++ bonobo/test-bw.c	2000/01/25 21:37:01
@@ -2,6 +2,7 @@
 #include <config.h>
 #include <gnome.h>
 #include <bonobo/bonobo.h>
+#include <libgnorba/gnorba.h>
 
 typedef struct {
 	GtkWidget  *box;
Index: components/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/components/Makefile.am,v
retrieving revision 1.9
diff -u -u -r1.9 Makefile.am
--- components/Makefile.am	1999/11/09 20:41:40	1.9
+++ components/Makefile.am	2000/01/25 21:37:01
@@ -1,4 +1,8 @@
+if OAF
+SUBDIRS =
+else
 SUBDIRS =  application-x-gnomine image-x-png text-plain audio-ulaw
+endif
 
 Keysdir   = $(datadir)/mime-info
 Keys_DATA = bonobo.keys
Index: components/application-x-gnomine/ChangeLog
===================================================================
RCS file: /cvs/gnome/bonobo/components/application-x-gnomine/ChangeLog,v
retrieving revision 1.3
diff -u -u -r1.3 ChangeLog
--- components/application-x-gnomine/ChangeLog	1999/12/07 15:37:07	1.3
+++ components/application-x-gnomine/ChangeLog	2000/01/25 21:37:01
@@ -1,3 +1,7 @@
+2000-01-26  Havoc Pennington  <hp@pobox.com>
+
+	* bonobo-application-x-mines.c: include GNORBA
+
 1999-12-07  Michael Meeks  <mmeeks@gnu.org>
 
 	* bonobo-application-x-mines.c (embeddable_update_all_views): Kill
Index: components/application-x-gnomine/bonobo-application-x-mines.c
===================================================================
RCS file: /cvs/gnome/bonobo/components/application-x-gnomine/bonobo-application-x-mines.c,v
retrieving revision 1.6
diff -u -u -r1.6 bonobo-application-x-mines.c
--- components/application-x-gnomine/bonobo-application-x-mines.c	2000/01/25 11:45:28	1.6
+++ components/application-x-gnomine/bonobo-application-x-mines.c	2000/01/25 21:37:01
@@ -11,6 +11,7 @@
 #include <config.h>
 #include <gnome.h>
 #include <bonobo.h>
+#include <libgnorba/gnorba.h>
 
 #include "minefield.h"
 
Index: gshell/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/gshell/Makefile.am,v
retrieving revision 1.5
diff -u -u -r1.5 Makefile.am
--- gshell/Makefile.am	2000/01/25 17:42:50	1.5
+++ gshell/Makefile.am	2000/01/25 21:37:01
@@ -6,7 +6,11 @@
         $(GNOME_INCLUDEDIR)				\
         $(GTK_CFLAGS)
 
+if OAF
+bin_PROGRAMS =
+else
 bin_PROGRAMS = gshell
+endif
 
 gshell_SOURCES = gshell.h gshell.c inout.h inout.c menu.h menu.c
 
Index: samples/compound-doc/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/samples/compound-doc/Makefile.am,v
retrieving revision 1.2
diff -u -u -r1.2 Makefile.am
--- samples/compound-doc/Makefile.am	2000/01/25 17:42:51	1.2
+++ samples/compound-doc/Makefile.am	2000/01/25 21:37:01
@@ -1,5 +1,9 @@
 
+if OAF
+bin_PROGRAMS =
+else
 bin_PROGRAMS = paint-component-simple sample-container
+endif
 
 INCLUDES =	\
         -DGNOMELOCALEDIR=\""$(datadir)/locale"\"        \
Index: samples/compound-doc/paint-component-simple.c
===================================================================
RCS file: /cvs/gnome/bonobo/samples/compound-doc/paint-component-simple.c,v
retrieving revision 1.18
diff -u -u -r1.18 paint-component-simple.c
--- samples/compound-doc/paint-component-simple.c	2000/01/25 11:45:33	1.18
+++ samples/compound-doc/paint-component-simple.c	2000/01/25 21:37:01
@@ -11,6 +11,7 @@
 #include <config.h>
 #include <gnome.h>
 #include <bonobo.h>
+#include <libgnorba/gnorba.h>
 
 /*
  * Number of running objects
Index: samples/controls/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/samples/controls/Makefile.am,v
retrieving revision 1.3
diff -u -u -r1.3 Makefile.am
--- samples/controls/Makefile.am	2000/01/25 17:42:52	1.3
+++ samples/controls/Makefile.am	2000/01/25 21:37:01
@@ -1,5 +1,9 @@
 
+if OAF
+bin_PROGRAMS =
+else
 bin_PROGRAMS = sample-control-factory sample-control-container
+endif
 
 INCLUDES =	\
         -DGNOMELOCALEDIR=\""$(datadir)/locale"\"        \
@@ -20,7 +24,7 @@
 	$(top_builddir)/bonobo/libbonobo.la		\
 	$(GTK_LIBS)					\
 	$(GNOME_LIBDIR)					\
-	$(GNOMEGNORBA_LIBS)				\
+	$(GNOMEGNORBA_LIBS)					\
 	$(INTLLIBS)
 
 sample_control_container_SOURCES =			\
@@ -30,7 +34,7 @@
 	$(top_builddir)/bonobo/libbonobo.la		\
 	$(GTK_LIBS)					\
 	$(GNOME_LIBDIR)					\
-	$(GNOMEGNORBA_LIBS)				\
+	$(GNOMEGNORBA_LIBS)					\
 	$(INTLLIBS)
 
 gnorbadir = $(sysconfdir)/CORBA/servers
@@ -38,4 +42,6 @@
 		bonobo-calculator-control.gnorba
 
 EXTRA_DIST = $(gnorba_DATA)
+
+
 
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/gnome/bonobo/tests/Makefile.am,v
retrieving revision 1.3
diff -u -u -r1.3 Makefile.am
--- tests/Makefile.am	2000/01/25 17:42:52	1.3
+++ tests/Makefile.am	2000/01/25 21:37:01
@@ -1,4 +1,8 @@
+if OAF
+bin_PROGRAMS=
+else
 bin_PROGRAMS=test-properties-server test-properties-client
+endif
 
 INCLUDES =	\
         -DGNOMELOCALEDIR=\""$(datadir)/locale"\"        \



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