static void create_bag (void) { PropData *pd = g_new0 (PropData, 1); BonoboArg *def; char *dstr; CORBA_char *ior; FILE *iorfile; pd->i = 987654321; pd->l = 123456789; pd->b = TRUE; pd->f = 2.71828182845; pd->d = 3.14159265358; pd->s = "Hello world"; /* Create the property bag. */ pb = bonobo_property_bag_new (get_prop, set_prop, pd); dstr = "Testing 1 2 3"; /* Add properties */ bonobo_property_bag_add (pb, "int-test", PROP_INTEGER_TEST, BONOBO_ARG_INT, NULL, dstr, 0); def = bonobo_arg_new (BONOBO_ARG_STRING); BONOBO_ARG_SET_STRING (def, "a default string"); bonobo_property_bag_add (pb, "string-test", PROP_STRING_TEST, BONOBO_ARG_STRING, def, dstr, Bonobo_PROPERTY_READABLE | Bonobo_PROPERTY_WRITEABLE); bonobo_property_bag_add (pb, "long-test", PROP_LONG_TEST, BONOBO_ARG_LONG, NULL, dstr, 0); bonobo_property_bag_add (pb, "boolean-test", PROP_BOOLEAN_TEST, BONOBO_ARG_BOOLEAN, NULL, dstr, 0); def = bonobo_arg_new (BONOBO_ARG_FLOAT); BONOBO_ARG_SET_FLOAT (def, 0.13579); bonobo_property_bag_add (pb, "float-test", PROP_FLOAT_TEST, BONOBO_ARG_FLOAT, def, dstr, 0); bonobo_property_bag_add (pb, "double-test", PROP_DOUBLE_TEST, BONOBO_ARG_DOUBLE, NULL, dstr, 0); iorfile = fopen ("iorfile", "wb"); /* Print out the IOR for this object. */ ior = CORBA_ORB_object_to_string (orb, BONOBO_OBJREF (pb), &ev); /* So we can tee the output to compare */ fwrite (ior, strlen (ior), 1, iorfile); fclose (iorfile); CORBA_free (ior); }
BonoboControl * itip_bonobo_control_new (void) { BonoboControl *control; BonoboPropertyBag *prop_bag; BonoboPersistStream *stream; GtkWidget *itip; itip = e_itip_control_new (); gtk_widget_show (itip); control = bonobo_control_new (itip); /* create a property bag */ prop_bag = bonobo_property_bag_new (get_prop, set_prop, itip); bonobo_property_bag_add (prop_bag, "from_address", FROM_ADDRESS_ARG_ID, BONOBO_ARG_STRING, NULL, "from_address", 0 ); bonobo_property_bag_add (prop_bag, "view_only", VIEW_ONLY_ARG_ID, BONOBO_ARG_INT, NULL, "view_only", 0 ); bonobo_control_set_properties (control, bonobo_object_corba_objref (BONOBO_OBJECT (prop_bag)), NULL); bonobo_object_unref (BONOBO_OBJECT (prop_bag)); bonobo_control_set_automerge (control, TRUE); stream = bonobo_persist_stream_new (pstream_load, pstream_save, pstream_get_content_types, "OAFIID:GNOME_Evolution_Calendar_iTip_Control:" BASE_VERSION, itip); if (stream == NULL) { bonobo_object_unref (BONOBO_OBJECT (control)); return NULL; } bonobo_object_add_interface (BONOBO_OBJECT (control), BONOBO_OBJECT (stream)); return control; }
/** * peacock_file_control_add_property_bag: * @control: * @widget: * * Map the GObject's properties to a BonoboPropertyBag for our BonoboObject. **/ static void peacock_file_control_add_property_bag (BonoboControl *control, GtkWidget *widget) { BonoboPropertyBag *pb; GParamSpec **pspecs; guint n_props; pb = bonobo_property_bag_new (peacock_file_control_get_prop, peacock_file_control_set_prop, (gpointer) control); bonobo_control_set_properties (control, BONOBO_OBJREF (pb), NULL); bonobo_object_unref (BONOBO_OBJECT (pb)); pspecs = g_object_class_list_properties (G_OBJECT_GET_CLASS (widget), &n_props); bonobo_property_bag_map_params (pb, G_OBJECT (widget), (const GParamSpec **) pspecs, n_props); g_free (pspecs); return; }
BonoboObject * circle_control_new (CommonData *com) { BonoboPropertyBag *pb; BonoboControl *control; GParamSpec **pspecs; guint n_pspecs; GtkWidget *button, *frame, *spin, *hbox, *spin_label; GtkObject *adj; GSList **list = &com->list; GSList *li; ObjectData *object = NULL; frame = gtk_frame_new("Circle"); hbox = gtk_hbox_new(FALSE, 2); gtk_container_add(GTK_CONTAINER(frame), hbox); button = gtk_button_new(); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); spin_label = gtk_label_new ("Speed:"); gtk_box_pack_start (GTK_BOX (hbox), spin_label, FALSE, FALSE, 0); adj = gtk_adjustment_new(100.0, 0.0, 1000.0, 1.0, 10.0, 0.0); g_signal_connect(adj, "value_changed", G_CALLBACK(set_speed), com); spin = gtk_spin_button_new(GTK_ADJUSTMENT(adj), 0.0, 0); gtk_box_pack_start (GTK_BOX (hbox), spin, FALSE, FALSE, 0); gtk_widget_show_all(frame); control = bonobo_control_new (frame); pb = bonobo_property_bag_new (NULL, NULL, NULL); bonobo_control_set_properties (control, BONOBO_OBJREF (pb), NULL); bonobo_object_unref (BONOBO_OBJECT (pb)); g_signal_connect(button, "clicked", G_CALLBACK(on_press), com); pspecs = g_object_class_list_properties ( G_OBJECT_GET_CLASS (button), &n_pspecs); bonobo_property_bag_map_params ( pb, G_OBJECT (button), (const GParamSpec **)pspecs, n_pspecs); g_free (pspecs); bonobo_control_life_instrument (control); li = g_slist_last(*list); if (li) { object = li->data; } if (!object || object->button) { object = g_new0(ObjectData, 1); *list = g_slist_append(*list, object); } object->button = button; object->adj = GTK_ADJUSTMENT(adj); update_button(object, com); set_speed(GTK_ADJUSTMENT(adj), com); return BONOBO_OBJECT (control); }