## BonoboItemContainer

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

## Synopsis

    struct      BonoboItemContainer;
    typedef     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

## Signal Prototypes

    "get-object"
                BonoboUnknown*user_function      (BonoboItemContainer *bonoboitemcontainer,
                                                gchar *arg1,
                                                gboolean arg2,
                                                BonoboCorbaException *arg3,
                                                gpointer user_data);

## Description

This implementation is mostly deprecated, see BonoboItemHandler

## Details

### struct BonoboItemContainer

    struct 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

## Signals

### The "get-object" signal

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

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