Re: Client side usage of PersistStream
Jean Bréfort <[email protected]> Wed, 18 Jun 2003 07:53:31 +0200
| Newsgroups | gmane.comp.gnome.components |
|---|---|
| Message-ID | <[email protected]> |
Martin Kretzschmar wrote: >Hi Christian, > >Am Die, 2003-06-17 um 00.13 schrieb Christian Glodt: > > >>I've been looking for an example of client side >>usage of the PersistStream interface. Specifically, >>I want to feed a local file to a Control in the easiest >>possible way. I've tried PersistFile, which works fine, >>but not all Controls support PersistFile anymore as its >>deprecated. >> >> > >No, the PersistFile interface is not deprecated. Only the use of >BonoboPersistFile for implementing PersistFile in a component is >discouraged. Same for BonoboPersistStream. > > > >>I'm currently blocked on the part where I need to >>instantiate a Bonobo_Stream which I can pass to >>Bonobo_PersistStream_load(). I've read somewhere that >>GnomeVFS can create such a stream, but I didn't find >>out how. >> >> > >To get a (read-only) Stream, do >stream = bonobo_get_object (moniker, "IDL:Bonobo/Stream:1.0", &ev); > >where moniker is "file:<<path to your file>>" for local files, or >"vfs:<<vfs-uri>>" for gnome-vfs, or some other fancy moniker. > >But you really want: > >control = bonobo_get_object (moniker, "IDL:Bonobo/Control:1.0", &ev); > >which will return a control with the file loaded. It will use whatever >PersistFoo the control implements. > > > >>I'd be very grateful for any explanations or pointers >>to sources I can study to see how this can be done. >> >> > >Nautilus can use PersistStream: >nautilus/components/adapter/nautilus-adapter-stream-load-strategy.c >in nautilus_adapter_stream_load_strategy_load_location > >And in gpdf a test uses PersistStream: >gpdf/xpdf/tests/test-pdf-loading.cc, in load_via_bonobo_stream. > > > Hi, I have written some very simple tests for the Bonobo Controls in gchemutils (http://www.nongnu.org/gchemutils (only in cvs)), gchempaint (http://www.nongnu.org/gchempaint)and gcrystal (http://www.nongnu.org/gcrystal) which use the PersistStream interface. The files are test/bonobo-control-test.c and all three are very similar, just the control (and the file loaded) are different. Best regards, Jean