| Bonobo API Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> |
struct BonoboPropertyControl; typedef BonoboPropertyControlClass; BonoboControl* (*BonoboPropertyControlGetControlFn) ( |
"action" void user_function ( |
This interface is designed to allow things that offer GUI customization a nice way to provide both multi and single page customization controls. Each page is exposed as a BonoboControl, and contain any arbitary widgets. Each control in a multi-page configuration should expose a string property named "bonobo:title" which contains a translated label suitable for using in a tabbed dialog.
An interface is also provided for applying each page's contents, and requesting help for that page. The interface also provides a BonoboEventSource to which a BonoboListener can be connected. Changes can be listened for which will arrive on the event with name BONOBO_PROPERTY_CONTROL_CHANGED.
A new single page BonoboPropertyControl interface can be created thus:
Example 1. A simple property control interface
static void
stop_start_cb (GtkToggleButton *button, GtkClock *clock)
{
if (button->active)
gtk_clock_start (clock);
else
gtk_clock_stop (clock);
}
static BonoboControl *
get_page_fn (BonoboPropertyControl *control,
int page_number,
void *closure)
{
GtkClock *clock = closure;
GtkWidget *widget = gtk_checkbutton_new_with_label (
"Clock is running");
gtk_widget_show (widget);
gtk_signal_connect (GTK_OBJECT (widget), "toggled",
GTK_SIGNAL_FUNC (stop_start_cb), clock);
return bonobo_control_new (widget);
}
BonoboObject *
add_property_interface (BonoboObject *aggregate, GtkClock *clock)
{
BonoboPropertyControl *pc;
pc = bonobo_property_control_new (get_page_fn, 1, clock);
bonobo_object_add_interface (aggregate_object, BONOBO_OBJET (pc));
return aggregate_object;
}
|
typedef struct {
BonoboXObjectClass parent_class;
POA_Bonobo_PropertyControl__epv epv;
void (* action) (BonoboPropertyControl *property_control,
Bonobo_PropertyControl_Action action);
} BonoboPropertyControlClass; |
BonoboControl* (*BonoboPropertyControlGetControlFn) ( |
| control : | |
| page_number : | |
| closure : | |
| Returns : |
|
|
Creates a BonoboPropertyControl object.
| get_fn : | The function to be called when the getControl method is called. |
| num_pages : | The number of pages this property control has. |
| closure : | The data to be passed into the get_fn routine |
| Returns : | A pointer to a newly created BonoboPropertyControl object. |
|
Creates a BonoboPropertyControl object.
| get_fn : | The function to be called when the getControl method is called. |
| num_pages : | The number of pages this property control has. |
| event_source : | The event source to use to emit events on. |
| closure : | The data to be passed into the get_fn routine. |
| Returns : | A pointer to a newly created BonoboPropertyControl object. |
|
Initialises the BonoboPropertyControl object.
| property_control : | A BonoboPropertyControl object. |
| event_source : | A BonoboEventSource object that will be aggregated onto the property control. |
| get_fn : | Creation routine. |
| num_pages : | |
| closure : | Data passed to closure routine. |
| Returns : | The newly constructed BonoboPropertyControl. |
void bonobo_property_control_changed ( |
Tells the server that a value in the property control has been changed, and that it should indicate this somehow.
| property_control : | The BonoboPropertyControl that has changed. |
| opt_ev : | An optional CORBA_Environment for exception handling. |
BonoboEventSource* bonobo_property_control_get_event_source ( |
Returns the BonoboEventSource that property_control uses.
| property_control : | The BonoboPropertyControl. |
| Returns : | A BonoboEventSource. |
void user_function ( |
| bonobopropertycontrol : | the object which received the signal. |
| arg1 : | |
| arg2 : | |
| user_data : | user data set when the signal handler was connected. |