| Bonobo API Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> |
typedef BonoboCanvasComponent; typedef BonoboCanvasComponentClass; GnomeCanvas* bonobo_canvas_new (gboolean is_aa, Bonobo_Canvas_ComponentProxy proxy); BonoboCanvasComponent* bonobo_canvas_component_construct (BonoboCanvasComponent *comp, GnomeCanvasItem *item); BonoboCanvasComponent* bonobo_canvas_component_new (GnomeCanvasItem *item); GnomeCanvasItem* bonobo_canvas_component_get_item (BonoboCanvasComponent *comp); Bonobo_UIContainer bonobo_canvas_component_get_ui_container (BonoboCanvasComponent *comp); void bonobo_canvas_component_grab (BonoboCanvasComponent *comp, guint mask, GdkCursor *cursor, guint32 time); void bonobo_canvas_component_ungrab (BonoboCanvasComponent *comp, guint32 time); |
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.
typedef struct {
BonoboXObject base;
BonoboCanvasComponentPrivate *priv;
} BonoboCanvasComponent; |
typedef struct {
BonoboXObjectClass parent_class;
POA_Bonobo_Canvas_Component__epv epv;
/* Signals */
void (*set_bounds) (BonoboCanvasComponent *component,
Bonobo_Canvas_DRect *bbox,
CORBA_Environment *ev);
gboolean (*event) (BonoboCanvasComponent *component,
GdkEvent *event);
} BonoboCanvasComponentClass; |
GnomeCanvas* bonobo_canvas_new (gboolean is_aa, Bonobo_Canvas_ComponentProxy proxy); |
| is_aa : | Flag indicating is antialiased canvas is desired |
| proxy : | Remote proxy for the component this canvas will support |
| Returns : | A GnomeCanvas with the root replaced by a forwarding item. |
BonoboCanvasComponent* bonobo_canvas_component_construct (BonoboCanvasComponent *comp, GnomeCanvasItem *item); |
Creates a CORBA server for the interface Bonobo::Canvas::Item wrapping item.
| comp : | a BonoboCanvasComponent to initialize |
| item : | A GnomeCanvasItem that is being exported |
| Returns : | The BonoboCanvasComponent. |
BonoboCanvasComponent* bonobo_canvas_component_new (GnomeCanvasItem *item); |
Creates a CORBA server for the interface Bonobo::Canvas::Item wrapping item.
GnomeCanvasItem* bonobo_canvas_component_get_item (BonoboCanvasComponent *comp); |
| comp : | A BonoboCanvasComponent object |
| Returns : | The GnomeCanvasItem that this BonoboCanvasComponent proxies |
Bonobo_UIContainer bonobo_canvas_component_get_ui_container
(BonoboCanvasComponent *comp); |
| comp : | A BonoboCanvasComponent object |
| Returns : | The UI container for the component's remote proxy. |
void bonobo_canvas_component_grab (BonoboCanvasComponent *comp, guint mask, GdkCursor *cursor, guint32 time); |
Grabs the mouse focus via a call to the remote proxy.
| comp : | A BonoboCanvasComponent object |
| mask : | Mask of events to grab |
| cursor : | GdkCursor to display during grab |
| time : | Time of last event before grab |
void bonobo_canvas_component_ungrab (BonoboCanvasComponent *comp, guint32 time); |
Grabs the mouse focus via a call to the remote proxy.
| comp : | A BonoboCanvasComponent object |
| time : | Time of last event before grab |