During this week I've tried to compile squeakGTK under MacOSX , windows and linux to provide binaries and binaries for webkit-gtk.
Off course under linux the compilation of webkit-gtk was easy and make binaries for squeakGTK was easy but under windows. Oh my god this was painfull really, first of all you need to install mingw and first problem mingw is no more maintain. So you need to install mingw and to take over the web more recent binaires for autoconf/automake ... And of course you need to compile GTK and webkit-gtk, the GTK team provides binaires for windows but the dll of a library is not compactible with webkit-gtk ^^ that's so cooooolllll :P
Off course the compilation of squeakGTK has failed squeak uses signals and windows doesn't know something about signals. So I've installed Cygwin and you know what it is no more maintened so some cool guys create a kind of repository with more recent version of software with webkit-gtk precompiled ^^ So I've installed webkit-gtk and all the dependencies but I've forgotten some tools and the problems come here when you relaunch the setup it will remove the last version by the old version of the webkit-gtk libraries... I've corrected this problem and after some c-patches I can compile squeakGTK and .... squeak crashes that's fine ^^
Under MacOSX this was also painfull off course you can use mac ports, but there is a native port of gtk and it compiles fine but webkit failed at link steps it needs more than one gb of memory yeah ^^ I've looked with google how to solve this problem and I've found a patch for libtool so we can patch the cctools. But after there is a link problem with the libpng and some Quartz libs ... Finally I've chosen the easy way and copy the /opt/local and the squeakGTK binaries inside a directory and I've create a script to launch everything -_-'
Arrggghhh compilation is devil
It is now possible to create your own GtkWidget with your personnal class. You have nothing to do you only have to inherit from GObject and when you send the new message it will automaticelly create the new GType and instantiate the associate GObject. Once this is done you can register you own signals an emit them :p