Bonobo API Reference Manual | |||
---|---|---|---|
<<< Previous Page | Home | Up | Next Page >>> |
struct BonoboWidget; typedef BonoboWidgetClass; BonoboObjectClient* bonobo_widget_get_server (BonoboWidget *bw); BonoboWidget* bonobo_widget_construct_control (BonoboWidget *bw, const char *moniker, Bonobo_UIContainer uic); BonoboWidget* bonobo_widget_construct_control_from_objref (BonoboWidget *bw, Bonobo_Control control, Bonobo_UIContainer uic); GtkWidget* bonobo_widget_new_control (const char *moniker, Bonobo_UIContainer uic); GtkWidget* bonobo_widget_new_control_from_objref (Bonobo_Control control, Bonobo_UIContainer uic); BonoboControlFrame* bonobo_widget_get_control_frame (BonoboWidget *bw); GtkWidget* bonobo_widget_new_subdoc (const char *moniker, Bonobo_UIContainer uic); BonoboItemContainer* bonobo_widget_get_container (BonoboWidget *bw); BonoboClientSite* bonobo_widget_get_client_site (BonoboWidget *bw); BonoboViewFrame* bonobo_widget_get_view_frame (BonoboWidget *bw); Bonobo_UIContainer bonobo_widget_get_uih (BonoboWidget *bw); Bonobo_Unknown bonobo_widget_get_objref (BonoboWidget *bw); void bonobo_widget_set_property (BonoboWidget *control, const char *first_prop, ...); void bonobo_widget_get_property (BonoboWidget *control, const char *first_prop, ...); |
Bonobo component embedding for hydrocephalic imbeciles.
Pure cane sugar.
This purpose of BonoboWidget is to make container-side use of Bonobo as easy as pie. This widget has two functions:
Provide a simple wrapper for embedding a single-view subdocument. In this case, BonoboWidget handles creating the embeddable, binding it to a local BonoboClientSite, creating a view for it, and displaying the view. You can use the accessor functions (bonobo_widget_get_view_frame, etc) to get at the actual Bonobo objects which underlie the whole process.
In order to do this, just call:
And then insert the 'bw' widget into the widget tree of your application like so:You are free to make the UIContainer argument to bonobo_widget_new_subdoc() be CORBA_OBJECT_NIL.
Provide a simple wrapper for embedding Controls. Embedding controls is already really easy, but BonoboWidget reduces the work from about 5 lines to 1. To embed a given control, just do:
To provide an extremely simple wrapper for using Monikers. In fact all BonoboWidget use uses the OAFIID: moniker to activate its sub-components. However monikers (bonobo-moniker-util) are far more powerful than this:
will launch an application that can render a jpeg as a control, usualy the Eye Of Gnome (EOG), and embed it as a control.There are also functions for fetching and setting values in the Control PropertyBag, but the use of these functions is discouraged.
BonoboWidget* bonobo_widget_construct_control (BonoboWidget *bw, const char *moniker, Bonobo_UIContainer uic); |
This is a constructor function. Only usable for wrapping and derivation of new objects. For normal use, please refer to bonobo_widget_new_control.
This function will unref the passed in bw in case it cannot launch the component and return NULL in such a case. Otherwise it returns the bw itself.
BonoboWidget* bonobo_widget_construct_control_from_objref (BonoboWidget *bw, Bonobo_Control control, Bonobo_UIContainer uic); |
This is a constructor function. Only usable for wrapping and derivation of new objects. For normal use, please refer to bonobo_widget_new_control_from_objref.
GtkWidget* bonobo_widget_new_control (const char *moniker, Bonobo_UIContainer uic); |
This function is a simple wrapper for easily embedding controls into applications. It will launch the component identified by id and will return it as a GtkWidget.
GtkWidget* bonobo_widget_new_control_from_objref (Bonobo_Control control, Bonobo_UIContainer uic); |
This function is a simple wrapper for easily embedding controls into applications. This function is used when you have already a CORBA object reference to an IDL:Bonobo/Control:1.0 (the control) argument.
BonoboControlFrame* bonobo_widget_get_control_frame (BonoboWidget *bw); |
Every IDL:Bonobo/Control:1.0 needs to be placed inside an IDL:Bonobo/ControlFrame:1.0. This returns the BonoboControlFrame object that wraps the Control in the bonobo_widget.
GtkWidget* bonobo_widget_new_subdoc (const char *moniker, Bonobo_UIContainer uic); |
This function is a simple wrapper for easily embedding documents into applications. It will launch the component identified by id and will return it as a GtkWidget.
This will launch a single view of the embeddable activated by moniker.
FIXME: this function should really be using bonobo_get_object() instead of bonobo_activate_object() to launch the object.
BonoboItemContainer* bonobo_widget_get_container (BonoboWidget *bw); |
This operation is only valid for BonoboWidgets that were created by the bonobo_widget_new_subdoc().
BonoboClientSite* bonobo_widget_get_client_site (BonoboWidget *bw); |
This operation is only valid for BonoboWidgets that were created by the bonobo_widget_new_subdoc().
BonoboViewFrame* bonobo_widget_get_view_frame (BonoboWidget *bw); |
This operation is only valid for BonoboWidgets that were created by the bonobo_widget_new_subdoc().
void bonobo_widget_set_property (BonoboWidget *control, const char *first_prop, ...); |
This is a utility function used to set a number of properties in the Bonobo Control in control.
This function takes a variable list of arguments that must be NULL terminated. Arguments come in tuples: a string (for the argument name) and the data type that is to be transfered. The implementation of the actual setting of the PropertyBag values is done by the bonobo_property_bag_client_setv() function).
FIXME: This function is error prone because it depends on the client and the server to agree on the data types to be sent. If the server arguments change the data type, this routine will not be able to cope gracefully with this condition.
This only works for BonoboWidgets that represent controls (ie, that were returned by bonobo_widget_new_control_from_objref() or bonobo_widget_new_control().
void bonobo_widget_get_property (BonoboWidget *control, const char *first_prop, ...); |
This is a utility function used to get a number of properties in the Bonobo Control in control.
This function takes a variable list of arguments that must be NULL terminated. Arguments come in tuples: a string (for the argument name) and a pointer where the data will be stored. The implementation of the actual setting of the PropertyBag values is done by the bonobo_property_bag_client_setv() function).
FIXME: This function is error prone because it depends on the client and the server to agree on the data types to be sent. If the server arguments change the data type, this routine will not be able to cope gracefully with this condition.
This only works for BonoboWidgets that represent controls (ie, that were returned by bonobo_widget_new_control_from_objref() or bonobo_widget_new_control().
Object activation happens with bonobo_get_object().
BonoboControl, BonoboControlFrame, BonoboObject, BonoboView, BonoboEmbeddable, BonoboUIContainer, BonoboItemContainer.