Re: BonoboItemContainer confusion



On 27 Apr 2001 01:43:57 +0200, Owen Fraser-Green wrote:
> Hi,
> 
> I'm a little confused as to the purpose and status of BonoboItemContainer. The
> IDL comment reads:
> 
>   bonobo-item-container.idl: Implements a generic container for objects
> 
....

I'm not offering the Official Answer, but I believe BonoboItemContainer
is safe to use. Note that bonobo-item-handler.{c,h} do exist, and they
seem to be a simple BonoboObject (ie, C, not IDL) interface for
implementing a Bonobo::ItemContainer. bonobo-item-container.{c,h} also
exist and I'm not sure if they're deprecated or intended for
Bonobo::ItemContainer clients.

I know the "big use" for Bonobo::ItemContainer is monikers. If your
object implements Bonobo::ItemContainer, then you will automagically be
able to take advantage of the builtin "item:" or "!" moniker.

Ie, if you write a moniker "myloader" which opens some kind of
structured file and implements a Bonobo::ItemContainer, then your code
automatically supports monikers like:

    "myloader:/path/to/structured/file!sectionname"

(Your moniker is resolved for ItemContainer, then the "item" moniker
uses it to get the item name 'sectionname') The canonical example is:

    "gnumeric:/path/to/file.gnumeric!workbook1!sheet2!cellA1"

The idea is that the Bonobo_Object returned by the gnumeric moniker
supports a ItemContainer that produces Gnumeric_Documents (or whatever).
The Gnumeric_Document implements an ItemContainer that produces
Gnumeric_Workbooks (or whatever again). The Gnumeric_Workbook implements
an ItemContainer that produces Gnumeric_Sheets, etc. I have no clue if
you're interested in monikers, but I personally think this kind of power
is what makes monikers the Coolest Thing Ever (TM), and is why Bonobo is
wonderful.

--
Peter Williams     peter newton cx / peterw ximian com

"Why should I have to change my name? He's the one who 
sucks!"                              -- Michael Bolton





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