The BonoboCanvasComponent objects are used to wrap GnomeCanvasItems
and export them to container applications. Typically the
bonobo_component_canvas_new() function will be invoked in a callback
from a BonoboEmbeddable object.
Here is an example of how to export Gnome Canvas Items in a simple
way.
Example 1. Wrapping a Gnome Canvas Item
/*
* Here is where the GnomeCanvasItem (in this case an ellipse)
* is created and wrapped in a BonoboCanvasComponent.
*
* This function is invoked on demand on the embeddable
* argument. Embeddables are the document model, and the
* items returned are the views.
*/
BonoboCanvasComponent *
my_item_creator (BonoboEmbeddable *embeddable,
GnomeCanvas *canvas,
void *data)
{
GnomeCanvasItem *item = gnome_canvas_item_new (
gnome_canvas_root (canvas),
gnome_canvas_ellipse_get_type(),
"x1", 5.0, "y1", 5.0,
"x2", 95.0, "y2", 95.0,
"fill_color", "white",
"outline_color", "black",
NULL);
return bonobo_canvas_component_new (item);
}
/*
* This is a routine that creates a BonoboEmbeddable that
* uses CanvasItems.
*/
BonoboEmbeddable *make_embeddable (void)
{
return bonobo_embeddable_new_canvas_item (my_item_creator, NULL);
}
Applications that do not use the base BonoboEmbeddable class, but
use their own types derived from the BonoboEmbeddable can use the
bonobo_embeddable_construct() during their construction phase.
On the client side (the application that will embed this component)
an object of the type BonoboCanvasItem is used.