Re: Fake inheritance in GDK
- From: murrayc t-online de (Murray Cumming)
- To: Owen Taylor <otaylor redhat com>
- Cc: gtk-devel-list <gtk-devel-list gnome org>
- Subject: Re: Fake inheritance in GDK
- Date: 11 Oct 2001 17:27:03 +0200
On Thu, 2001-10-11 at 17:05, Owen Taylor wrote:
>
> murrayc t-online de (Murray Cumming) writes:
>
> > I'm auto-generating C++ wrappers for GDK 2, and I've discovered some
> > small difficulties:
> >
> > GdkVisualClass is declared as this, in gdkvisual.h:
> >
> > typedef struct _GdkVisualClass GdkVisualClass;
> >
> > But _GdkVisualClass is not defined anywhere. I think that it should, at
> > least, be defined as
> > typedef struct _GdkDrawableClass GdkVisualClass
> > as has been done for GdkPixmap and GdkBitmap in gdktypes.h
>
> GdkVisual is not a GdkDrawable:
Sorry, I mean it should be
typedef struct _GObjectClass GdkVisualClass;
>
> http://developer.gnome.org/doc/API/2.0/gdk/gdk-visuals.html
>
> explains what a GdkVisual is.
>
> > Actually, I'd like to change all of these pretend derivations to real
> > derivations. The C++ compiler can't tell the difference between
> > GdkDrawable*, GdkBitmap*, GdkPixmap*, and GdkVisual* because they are
> > all simple typedefs of each other. Would you accept a patch to do that?
>
> No. Breaking every GTK+ program out there not allowed. :-)
I didn't think the there would be any source breakage, and possibly not
even any binary breakage, because
struct GdkBitmapClass
{
GObjectClass
}
might look just like
typdef struct _GdkDrawableClass GdkBitmapClass
Of course I was only guessing.
>
> (They actually are real derivations, in the GObject sense, we just
> use the same typedef for all of the objects.)
I can see that there isn't much advantage for C coders, but surely it's
not 'real derivation' unless you register a new GType. There is no
GDK_BITMAP_TYPE or gdk_bitmap_get_type().
Aren't you glad that the whining from the gtk-- developers has already
started again?
--
Murray Cumming
murrayc usa net
www.murrayc.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]