David (cc'ing larceny-users)-
Post by David RushBut has anyone done a GTK+ set of bindings for Larceny yet? This is
more of a curiosity kind of inquiry than a serious project need right
now, but given the cross-platform capabilities of both systems, the
combination would make Larceny/GTK a really great platform for
cross-platform GUI development.
I did some work on a set of GTK+ bindings.
Take a look at:
https://trac.ccs.neu.edu/trac/larceny/browser/trunk/larceny_src/lib/Standard/gtk.sch
https://trac.ccs.neu.edu/trac/larceny/browser/trunk/larceny_src/lib/Standard/gtk-2.4.sch
https://trac.ccs.neu.edu/trac/larceny/browser/trunk/larceny_src/lib/Standard/glib.sch
https://trac.ccs.neu.edu/trac/larceny/browser/trunk/larceny_src/lib/Standard/gdk.sch
and example uses of it in:
https://trac.ccs.neu.edu/trac/larceny/browser/experiments/gtk
Its nowhere near complete, but the fundamentals are there. Some newer
FFI features were added specifically to support the needs of GTK+;
e.g. the establish-void*-subhierarchy! procedure. Other bits were put
in before I had developed define-c-info and friends, so there are some
ugly hard-coded values that should be replaced with invocations of
define-c-info or similar header importing macros. Other elements of
support were pretty much hacked in, such as the use of g_signal_query
to dynamically extract the expected type of a callback in glib.sch.
Recently I've been experimenting more with OpenGL bindings than GTK+.
But it would be good for someone with more GTK+ experience than myself
to exercise the existing set of GTK+ bindings and add more functions
to it.
Post by David RushBesides, PLT's GUI system makes me crazy :)
A set of bindings for wxWindows might also be worth exploring. PLT's
system is based on a fork of an old version of wx; it would be
interesting to see if we could hook into the current version of wx.
But then again I do not know how actively that project is maintained;
GTK+ seems like a safer bet in terms of long term support and activity
from the development community.
-Felix