Name
BonoboClientSite -- Container side object embedding server.
Description
The BonoboClientSite implements the
Bonobo::ClientSite CORBA interface. It acts
as the container-side contact for
BonoboEmbeddable objects.
For each object embedded in your application, you should create a
BonoboClientSite object.
Once you have a handle on a remote object that implements the
Bonobo::Embeddable interface (typically
returned by bonobo_object_activate() or
bonobo_get_object() or wrapper with
bonobo_object_client_from_corba()) of type
BonoboObjectClient), you will have to bind
this object to the BonoboClientSite using the
bonobo_client_site_bind_embeddable(). Once this is done, you will
be able to request a BonoboView on the BonoboClientSite.
The BonoboClientSite object also provides access to the remote
BonoboEmbeddable object's verb list.
Example 1. Sample usage
This demostrates the use of the BonoboClientSite object. This
launches the object specified, creates a BonoboClientSite,
then requests a new BonoboViewFrame and finally it returns the
widget that represents that component.
GtkWidget *
create_widget_from_component (BonoboContainer *container, const char *id)
{
BonoboObjectClient *server;
BonoboClientSite *client_site;
BonoboViewFrame *view_frame;
/*
* Launch the requested component
*/
server = bonobo_object_activate (id, 0);
if (!server){
printf ("Could not activate the server");
return NULL;
}
client_site = bonobo_client_site_new (app->container);
/*
* Add this client site to the container
*/
bonobo_container_add (container, BONOBO_OBJECT (client_site));
/*
* Bind the component to the client site
*/
bonobo_client_site_bind_embeddable (client_site, server);
/*
* Create a new BonoboView, and then get a GtkWidget
*/
view_frame = bonobo_client_site_embeddable_new_view (client_site);
/*
* Get the widget for this view.
*/
return bonobo_view_frame_get_wrapper (view_frame);
}
|
Details
BonoboClientSiteClass
typedef struct {
BonoboXObjectClass parent_class;
POA_Bonobo_ClientSite__epv epv;
void (*show_window) (BonoboClientSite *, CORBA_boolean shown);
void (*queue_resize) (BonoboClientSite *);
void (*save_object) (BonoboClientSite *, Bonobo_Persist_Status *status);
} BonoboClientSiteClass; |
bonobo_client_site_new ()
Container programs should provide a BonoboClientSite GTK object (ie,
a Bonobo::ClientSite CORBA server) for each Embeddable which they
embed. This is the contact end point for the remote
Bonobo::Embeddable object.
This routine creates a new BonoboClientSite.
bonobo_client_site_construct ()
BonoboClientSite* bonobo_client_site_construct
(BonoboClientSite *client_site,
BonoboItemContainer *container); |
This initializes an object of type BonoboClientSite. See the description
for bonobo_client_site_new() for more details.
bonobo_client_site_bind_embeddable ()
gboolean bonobo_client_site_bind_embeddable
(BonoboClientSite *client_site,
BonoboObjectClient *object); |
This routine binds a remote Embeddable object to a local
BonoboClientSite object. The idea is that there is always a
one-to-one mapping between BonoboClientSites and BonoboEmbeddables.
The Embeddable uses its BonoboClientSite to communicate with the
container in which it is embedded.
bonobo_client_site_get_embeddable ()
bonobo_client_site_get_container ()
bonobo_client_site_new_view_full ()
BonoboViewFrame* bonobo_client_site_new_view_full
(BonoboClientSite *client_site,
Bonobo_UIContainer uic,
gboolean visible_cover,
gboolean active_view); |
Creates a ViewFrame and asks the remote server_object (which must
support the Bonobo::Embeddable interface) to provide a new view of
its data. The remote server_object will construct a BonoboView
object which corresponds to the new BonoboViewFrame returned by this
function.
bonobo_client_site_new_view ()
BonoboViewFrame* bonobo_client_site_new_view
(BonoboClientSite *client_site,
Bonobo_UIContainer uic); |
The same as bonobo_client_site_new_view_full() with an inactive,
visible cover.
bonobo_client_site_new_item ()
GnomeCanvasItem* bonobo_client_site_new_item
(BonoboClientSite *client_site,
Bonobo_UIContainer uic,
GnomeCanvasGroup *group); |
bonobo_client_site_get_verbs ()
GList* bonobo_client_site_get_verbs (BonoboClientSite *client_site); |
bonobo_client_site_free_verbs ()
void bonobo_client_site_free_verbs (GList *verb_list); |