On Sun, 2006-09-24 at 14:51 +0200, Philip Van Hoof wrote: > #define G_INPUT_STREAM_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE > ((inst), G_TYPE_INPUT_STREAM, TnyDeviceIface))
Search and replace issue. This should of course be something like: #define G_INPUT_STREAM_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_INPUT_STREAM, GInputStreamIface)) > #define G_SEEKABLE_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), > G_TYPE_SEEKABLE, TnyDeviceIface)) And this one GSeekableIface Also note that I would definitely start with a base GStreamIface, continue with a GInputStreamIface and a GOutputStreamIface where the input and output have as prerequisite the GStreamIface. Or in .NET (and Java) that would mean: namespace G { interface IStreamIface { .. } interface IOutputStream : G.IStreamIface { .. } interface IInputStream : G.IStreamIface { .. } interface ISeekable : G.IStreamIface { .. } /* OR: interface ISeekable { .. }; */ } In Java I think you can only extend an interface with one interface. In .NET I know you can extend an interface with as much other interfaces as you want. Extending an interface is more or less the exact same thing as copy pasting all the to-implement methods and properties (properties translate to both a get and a set method in Java, depends on whether or not it's a read-only property etc etc) in the final interface. And now you would create a SomeStreamType like this: public class SomeStreamType : G.IOutputStream, G.IInputStream, G.ISeekable { } ps. To the Java warriors on this list: forgive me for my .NET style syntax. I know you guys know it's all the same (Java and .NET) with just a little bit different syntax sugar. -- Philip Van Hoof, software developer at x-tend home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org work: vanhoof at x-tend dot be http://www.pvanhoof.be - http://www.x-tend.be _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list