Bonobo API Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# bonobo-main

## Name

bonobo-main -- Bonobo initialization.

## Synopsis

    gboolean    bonobo_init                     (CORBA_ORB orb,
                                                 PortableServer_POA poa,
                                                 PortableServer_POAManager manager);
    void        bonobo_main                     (void);
    gboolean    bonobo_activate                 (void);
    void        bonobo_setup_x_error_handler    (void);
    CORBA_ORB   bonobo_orb                      (void);
    PortableServer_POA bonobo_poa               (void);
    PortableServer_POAManager bonobo_poa_manager
                                                (void);

## Description

Initialization functions for Bonobo applications.

## Details

### bonobo_init ()

    gboolean    bonobo_init                     (CORBA_ORB orb,
                                                 PortableServer_POA poa,
                                                 PortableServer_POAManager manager);

Initializes the bonobo document model. It requires at least the value for `orb`. If `poa` is CORBA_OBJECT_NIL, then the RootPOA will be used, in this case `manager` should be CORBA_OBJECT_NIL.

`orb` : | the ORB in which we run
`poa` : | optional, a POA.
`manager` : | optional, a POA Manager
Returns : | `TRUE` on success, or `FALSE` on failure.

### bonobo_main ()

    void        bonobo_main                     (void);

Activates the Bonobo POA Manager and enters the main event loop.

### bonobo_activate ()

    gboolean    bonobo_activate                 (void);

Activates the Bonobo POA manager registered by bonobo_init. This should be called at the end of application initialization. You do not need to call this function if you use bonobo_main().

Returns : | `TRUE` on success, or `FALSE` on failure.

### bonobo_setup_x_error_handler ()

    void        bonobo_setup_x_error_handler    (void);

To do graphical embedding in the X window system, Bonobo uses the classic foreign-window-reparenting trick. The GtkPlug/GtkSocket widgets are used for this purpose. However, serious robustness problems arise if the GtkSocket end of the connection unexpectedly dies. The X server sends out DestroyNotify events for the descendants of the GtkPlug (i.e., your embedded component's windows) in effectively random order. Furthermore, if you happened to be drawing on any of those windows when the GtkSocket was destroyed (a common state of affairs), an X error will kill your application.

To solve this latter problem, Bonobo sets up its own X error handler which ignores certain X errors that might have been caused by such a scenario. Other X errors get passed to gdk_x_error normally.

### bonobo_orb ()

    CORBA_ORB   bonobo_orb                      (void);

fetches the bonobo orb

Returns the CORBA_ORB object that is being used by Bonobo.

Returns : | The ORB used for this Bonobo application. The ORB is created in bonobo_init().

### bonobo_poa ()

    PortableServer_POA bonobo_poa               (void);

fetches the bonobo poa

Returns the POA object that is being used by Bonobo.

Returns : | The POA used for this Bonobo application. The POA is created when bonobo_init() is called.

### bonobo_poa_manager ()

    PortableServer_POAManager bonobo_poa_manager
                                                (void);

fetches the bonobo poa manager.

Returns the POA Manager object that is being used by Bonobo.

Returns : | The POA Manager used for this Bonobo application. The POA Manager is created when bonobo_init() is called, but it is not activated until bonobo_main() is called.

<<< Previous Page | Home | Up | Next Page >>>
BonoboXObject | Object Activation and Lifecycle