BonoboGenericFactory for GNOME 2



Hi guys,

this mail basically applies to the GNOME 2 version of Bonobo (the
libbonobo and libbonoboui CVS modules) only since we need to keep
binary compatibility in the GNOME 1.4 version.

[A little info for those of you who aren't familar with Bonobo 2:

 Michael merged BonoboXObject and BonoboObject in libbonobo, so I'm
 basically speaking of a BonoboObject with the functionality of a
 BonoboXObject here.]

Ok, so Dietmar just asked me

> We still have the problem that a BonoboGenericFactory is a GObject,
> but not a BonoboObject and thus also not support the Unkown
> interface. Is there a change to change GNOME_ObjectFactory to inherit
> from Unknown for GNOME 2.0 ?

I think the question is what we want and why we want it :-)

Basically, we have two "problems" here:

a) BonoboGenericFactory is using GNOME_ObjectFactory which is
   not a Bonobo::Unknown.

b) GNOME_ObjectFactory is part of OAF and as such also useful for
   non-Bonobo code

To summarize, a) means that we cannot just use BonoboObject here
and b) means that if I was the maintainer of OAF, I'd say no to
making GNOME::ObjectFactory a Bonobo::Unknown.

So, what do we want and why do we want it ?

Well, I think what we want is clear, making BonoboGenericFactory a
BonoboObject.

But why and which advantage does it have for us:

i) if we just want to do this to clean up the code in
   bonobo-generic-factory.c and bonobo-shlib-factory.c, then I
   see little to no way to do this.

ii) if we want to make BonoboGenericFactory a BonoboObject to make it
    more easy to derive from it and to make it more consistent with the
    rest of Bonobo, then I actually see a way to do this with a little
    change in OAF and a little change in BonoboObject.

So, let's assume we want to do it because of (ii).

Here's how I think it can be done:

1.) First of all, we need to ask Maciej to either rename or remove the
    `ref' and `unref' methods in GNOME::ObjectFactory (from a `grep -r'
    in oaf, they don't seem to be used at all).

2.) After that, we create a Bonobo::GenericFactory which derives from
    both GNOME::ObjectFactory and Bonobo::Unknown

3.) Then, we need to add a way to override the vepv to BonoboObject.

How does this sound ?

-- 
Martin Baulig
martin gnome org (private)
baulig suse de (work)




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