My last entry described how to create objects for dmdscript, I made a brief comment, that gtk javascript might be quite cool.. Well after a bit of hacking I got hello world to work. (well and a bit more..)
Gtk.init();
var w = new Gtk.Window(0);
w.setTitle("hello world");
w.showAll();
Gtk.main();
run with
/tmp/gtkjs hello.ds
I started with the GtkD bindings code generator, and extracted out the HTML parser code (it parses the HTML API docs). The based on the code from the last post, and some of the ideas from GtkD generated all the classes for dmdscript.
At present:
- 317 Classes, Including Atk, Glib, Gobject, gthread, gdk, gdkpixbuf, glade gtk and pango
- 2554 Methods should be working.
What's left to do..
- Signals - I've got a prototype working for this, so It's mostly a matter of writing the generation code.
- Enums - They are in the D code, but no exported to the Javascript side.
- Argument checking.. - Should be pretty trivial to add..
- Return checking.. again pretty trivial..
- Custom code for non-generated methods, Structs etc.
- Tiding up the APILookup files. - - they are pretty similar to the GtkD code at present, and my generator just ignores alot of them.
- Lots of code tidy ups.. (the class registration is a bit of a brute force hack)
If you want to try it out... (developers only.. dont expect to write applications with it yet.)
svn co http://www.akbkhome.com/svn/gtkDS
cd gtkDS/wrap
#download API Files (needs curl / tar etc.)
sh downloadFiles.sh
#compile it - needs dmd installed..
sh buildit.sh
cd ..
#build the bindings - requires compd from dsource.org/projects/dool
compd gdkds.compd
/tmp/gtkjs test/hello.ds
Now I just wonder what use it is ;)