[Gtk-sharp-list] GtkMozEmbed binding issues
Mark Crichton
crichton@gimp.org
Wed, 11 Dec 2002 15:06:19 -0500
--wzJLGUyc3ArbnUjN
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
So, I've been working on trying to get gtk# to handle the gtkmozembed
widget that comes with mozilla. So far, I have a GTK2 gtkmozembed
widget that is working with gtk#.
However, there is one major problem. When I was writing Python
bindings for gtkmozembed, I ran into a nasty problem with one of the
signals. The signal in question is the new_window signal. For those
not familiar with Mozilla, here's the signal prototype:
void (* new_window) (GtkMozEmbed *embed, GtkMozEmbed **newEmbed,
guint chromemask);
Now, what happens that Mozilla will throw this signal when it needs a
new GtkMozEmbed widget. Your callback creates it, and throws the
pointer into newEmbed. This is, of course, a massive nightmare for
certain language bindings. You also cannot get around NOT implementing
this signal, it's thrown for some simple things as form creation.
So, mozilla bug #120035 was filed, and a new signal was proposed
(new_window2) which looks like:
GtkMozEmbed *(* new_window2) (GtkMozEmbed *embed, guint chromemask);
Unfortunately, I can't figure out how to get either of those handler
forms to work with gtk#. I know with new_window2, I've tried changing
the GtkMozEmbed type to GObject or gpointer, and that doesn't seem to
work well at all.
Does anyone have any ideas? None of the signal handlers I could find
in GTK2 seem to have this (seemingly bizzare) structure (I even had to
code up my own marshaling function in C for this type of signal...)
There is also one other issue. The guint chromemask is now an Enum.
However, I think that is easy to fix with metadata when parsing the
src/header files.
Thanks,
Mark Crichton
--wzJLGUyc3ArbnUjN
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (SunOS)
iD8DBQE995q7Ofj2Ja/u/oARAqkSAKCAvq8/mB6pqb49R9iADsh/t3oWYgCfUyf9
UzGZy667EgoRMGvq67SUj88=
=hHtm
-----END PGP SIGNATURE-----
--wzJLGUyc3ArbnUjN--