## BonoboItemContainer BonoboItemContainer — this implements a simple container interface for compound document containers |

## Synopsis

                        BonoboItemContainer;
                        BonoboItemContainerClass;
    BonoboItemContainer* bonobo_item_container_new          (void);
    void                bonobo_item_container_add           (BonoboItemContainer *container,
                                                             const char *name,
                                                             BonoboObject *object);
    void                bonobo_item_container_remove_by_name
                                                            (BonoboItemContainer *container,
                                                             const char *name);

## Object Hierarchy

      GObject
       +----BonoboObject
             +----BonoboItemContainer

## Signals

      "get-object"                                     : Run Last

## Description

This implementation is mostly deprecated, see BonoboItemHandler

## Details

### BonoboItemContainer

    typedef struct _BonoboItemContainer BonoboItemContainer;

Object that implements Bonobo::ItemHandler

### BonoboItemContainerClass

    typedef struct {
    	BonoboObjectClass parent_class;

    	POA_Bonobo_ItemContainer__epv epv;

    	Bonobo_Unknown (*get_object) (BonoboItemContainer *item_container,
    				      CORBA_char          *item_name,
    				      CORBA_boolean        only_if_exists,
    				      CORBA_Environment   *ev);
    } BonoboItemContainerClass;

BonoboItemContainer's class

### bonobo_item_container_new ()

    BonoboItemContainer* bonobo_item_container_new          (void);

Creates a new BonoboItemContainer object. These are used to hold client sites.

Returns : | The newly created BonoboItemContainer object

### bonobo_item_container_add ()

    void                bonobo_item_container_add           (BonoboItemContainer *container,
                                                             const char *name,
                                                             BonoboObject *object);

Adds the `object` to the list of objects managed by this container

`container` : | The object to operate on.
`name` : | The name of the object
`object` : | The object to add to the container

### bonobo_item_container_remove_by_name ()

    void                bonobo_item_container_remove_by_name
                                                            (BonoboItemContainer *container,
                                                             const char *name);

Removes the named object from the `container`

`container` : | The object to operate on.
`name` : | The name of the object to remove from the container

## Signal Details

### The `"get-object"` signal

    BonoboUnknown*      user_function                      (BonoboItemContainer  *bonoboitemcontainer,
                                                            gchar                *arg1,
                                                            gboolean              arg2,
                                                            BonoboCorbaException *arg3,
                                                            gpointer              user_data)                : Run Last

Signal emitted when a sub-object is requested from the item container.

`bonoboitemcontainer` : | the object which received the signal.
`arg1` : | the item name, i.e. the string after the '!' character, usually a semicolon separated list of key=value options
`arg2` : | the "only_if_exists" flag; if `TRUE`, client requests that subobject be returned if it exists, but that it should not be created on demand if it doesn't
`arg3` : | environment, in case the signal wishes to raise an exception
`user_data` : | user data set when the signal handler was connected.
Returns : | an object contained by the item container, or `CORBA_OBJECT_NIL`.

## See Also

BonoboItemHandler