Re: gobject introspection

Johan Dahlin <[email protected]> Mon, 09 May 2005 14:55:33 -0300
Newsgroups gmane.comp.gnome.language-bindings
Organization Async Open Source
Message-ID <[email protected]>
>But the real reason why I'm posting here is to ask how the different
>language bindings handle unions (in particular GdkEvent). The
>introspection prototype currently doesn't handle unions at all, apart
>from the fact that fields are supposed to have struct offset
>information, so unions could be modeled by describing the overlapping
>fields. CORBA does seem to have a concept of discriminated union,
>which would probably cover the GdkEvent case, but trying to describe
>arbitrary anonymous unions in the middle of structs sounds like adding 
>a lot of complexity. It would be very tempting to just require
>accessors to make those kinds of C-specific things bindable.
>
>So, how do language bindings handle GdkEvent currently ?
>  
>
In Python there is only one GdkEvent class, which looks differently 
depending on the
actual event.

So for example event.type is a member which is always accessible while 
event.button is only accessible for GdkEventButton.

You can also create new events and assign members of them, that looks 
very similar to the C API:

  event = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS)
  event.button = ...

Ideally, subclassing would be used, a main gdk.Event class and a 
subclass for each type in the union.

Currently the events are not handled by the code generator. In a future 
version of PyGTK they might be.

Johan Dahlin

_______________________________________________
language-bindings mailing list  [email protected]
http://mail.gnome.org/mailman/listinfo/language-bindings