GnomeDialog * gnocam_camera_selector_new (void) { GnoCamCameraSelector *selector; const gchar *buttons[] = {GNOME_STOCK_BUTTON_OK, GNOME_STOCK_BUTTON_CANCEL, NULL}; GtkWidget *hbox, *pixmap, *vbox, *widget, *label; Bonobo_PropertyBag pb; CORBA_Environment ev; selector = gtk_type_new (GNOCAM_TYPE_CAMERA_SELECTOR); gnome_dialog_constructv (GNOME_DIALOG (selector), _("Select a Camera"), buttons); gnome_dialog_set_default (GNOME_DIALOG (selector), 0); gtk_window_set_policy (GTK_WINDOW (selector), TRUE, TRUE, TRUE); gtk_widget_set_usize (GTK_WIDGET (selector), 400, 300); hbox = gtk_hbox_new (FALSE, 10); gtk_widget_show (hbox); gtk_container_add (GTK_CONTAINER (GNOME_DIALOG (selector)->vbox), hbox); vbox = gtk_vbox_new (FALSE, 10); gtk_widget_show (vbox); gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); /* The camera picture */ pixmap = gnome_pixmap_new_from_file (IMAGEDIR "/gnocam.png"); gtk_widget_show (pixmap); gtk_box_pack_start (GTK_BOX (vbox), pixmap, FALSE, FALSE, 0); /* The "Autodetect" check button */ CORBA_exception_init (&ev); pb = bonobo_get_object ("config:/apps/" PACKAGE, "Bonobo/PropertyBag", &ev); if (BONOBO_EX (&ev)) { g_warning ("Could not get property bag: %s", bonobo_exception_get_text (&ev)); } else { GtkObject *ed; ed = bonobo_peditor_new (pb, "autodetect", TC_boolean, NULL); bonobo_object_release_unref (pb, NULL); widget = bonobo_peditor_get_widget (BONOBO_PEDITOR (ed)); gtk_widget_show (widget); gtk_box_pack_end (GTK_BOX (vbox), widget, FALSE, FALSE, 0); label = gtk_label_new (_("Autodetect")); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (widget), label); } CORBA_exception_free (&ev); /* The camera list */ selector->priv->table = gnocam_capplet_table_scrolled_new (NULL); gtk_widget_show (selector->priv->table); gtk_box_pack_start (GTK_BOX (hbox), selector->priv->table, TRUE, TRUE, 0); return (GNOME_DIALOG (selector)); }
static void on_view_as_activate (GtkMenuItem *item, ViewAsData *d) { GtkWidget *w, *c, *s; Bonobo_Control control; CORBA_Environment ev; CameraFile *f; int result; Bonobo_PersistStream pstream; BonoboObject *stream; const char *data = NULL; unsigned long int size; const char *type; g_return_if_fail (d->iid != NULL); CORBA_exception_init (&ev); control = bonobo_get_object (d->iid, "IDL:Bonobo/Control:1.0", &ev); if (BONOBO_EX (&ev) || (control == CORBA_OBJECT_NIL)) { CORBA_exception_free (&ev); g_warning ("Could not get control from '%s'.", d->iid); return; } w = bonobo_window_new (d->file, d->file); c = bonobo_widget_new_control_from_objref (control, CORBA_OBJECT_NIL); gtk_widget_show (c); bonobo_window_set_contents (BONOBO_WINDOW (w), c); gtk_widget_show (w); s = gtkam_status_new (_("Downloading '%s' from '%s'..."), d->file, d->folder); g_signal_emit (G_OBJECT (d->list), signals[NEW_STATUS], 0, s); gp_file_new (&f); result = gp_camera_file_get (d->camera->camera, d->folder, d->file, GP_FILE_TYPE_NORMAL, f, GTKAM_STATUS (s)->context->context); if (d->camera->multi) gp_camera_exit (d->camera->camera, NULL); if (result >= 0) { CORBA_exception_init (&ev); pstream = Bonobo_Unknown_queryInterface (control, "IDL:Bonobo/PersistStream:1.0", &ev); if (!BONOBO_EX (&ev) && (pstream != CORBA_OBJECT_NIL)) { gp_file_get_data_and_size (f, &data, &size); gp_file_get_mime_type (f, &type); stream = bonobo_stream_mem_create (data, size, TRUE, FALSE); Bonobo_PersistStream_load (pstream, bonobo_object_corba_objref (stream), type, &ev); g_object_unref (G_OBJECT (stream)); bonobo_object_release_unref (pstream, NULL); } CORBA_exception_free (&ev); } gp_file_unref (f); gtk_object_destroy (GTK_OBJECT (s)); }
static void test_real_monikers (void) { CORBA_Environment *ev, real_ev; Bonobo_Unknown object; CORBA_exception_init ((ev = &real_ev)); /* Try an impossible moniker resolve */ object = bonobo_get_object ("OAFIID:Bonobo_Moniker_Oaf", "IDL:Bonobo/PropertyBag:1.0", ev); g_assert (object == CORBA_OBJECT_NIL); if (BONOBO_EX (ev)) printf ("%s\n", bonobo_exception_get_text (ev)); CORBA_exception_free (ev); }
int main (int argc, char *argv []) { Bonobo_Sample_Echo echo_server; CORBA_Environment ev; /* * Initialize bonobo. */ if (!bonobo_init (&argc, argv)) g_error (_("I could not initialize Bonobo")); /* * Enable CORBA/Bonobo to start processing requests */ bonobo_activate (); echo_server = bonobo_get_object ("OAFIID:Bonobo_Sample_Echo", "Bonobo/Sample/Echo", NULL); if (echo_server == CORBA_OBJECT_NIL) { g_warning (_("Could not create an instance of the sample echo component")); return bonobo_debug_shutdown (); } /* Send a message */ CORBA_exception_init (&ev); Bonobo_Sample_Echo_echo (echo_server, "This is the message from the client\n", &ev); /* Check for exceptions */ if (BONOBO_EX (&ev)) { char *err = bonobo_exception_get_text (&ev); g_warning (_("An exception occurred '%s'"), err); g_free (err); } CORBA_exception_free (&ev); bonobo_object_release_unref (echo_server, NULL); return bonobo_debug_shutdown (); }
Bonobo_Unknown bonobo_moniker_conf_indirect_resolve (BonoboMoniker *moniker, const Bonobo_ResolveOptions *options, const CORBA_char *requested_interface, CORBA_Environment *ev) { const char *key; char *oiid; Bonobo_Unknown object; GConfClient *conf_client; GError *err = NULL; /* retrieve the key contents from GConf */ key = bonobo_moniker_get_name (moniker); if (!gconf_is_initialized ()) gconf_init (0, NULL, NULL); conf_client = gconf_client_get_default (); oiid = gconf_client_get_string (conf_client, key, &err); g_object_unref (conf_client); if (!oiid) { bonobo_exception_general_error_set ( ev, NULL, err ? err->message : _("Key %s not found in configuration"), key); g_error_free (err); return CORBA_OBJECT_NIL; } /* activate the object referenced in the GConf entry */ object = bonobo_get_object ((const CORBA_char *) oiid, requested_interface, ev); g_free (oiid); return object; }