This is a fork of cells-gtk3, which is a binding for GTK+ widget toolkit using Cells3. I have not substantially modified it, mostly made it run with current versions of dependencies and modified the FFI layer to use type synonyms.
I tested only with repository versions of dependencies. I recommend using clbuild to install them.
Listed are only Lisp side dependencies. Obviously, you need GTK+ installed, and whatever other extensions you want (mostly gtkglext).
Note that both cells and cells-gtk3 have multiple .asd
files in top level directory. All must be linked into central registry.
By default are optional dependencies are turned on. If you want optional components not to be loaded you have to edit the features.lisp
file in cells-gtk3 directory, and comment out appropriate (pushnew ...)
command.
For certain features a small auxiliary dynamic library is necessary. There is a version of it for x86 Linux included in the repository. If you are on a different system you have to either rebuild it (by using make
in gtk-ffi subdirectory) or disable it in features.lisp
as above.
Cells themselves are documented in cells-doc. There is no documentation for cells-gtk3, but there is comprehensive example application in test-gtk subdirectory.
I cleaned up the library just in case I needed GUI in Lisp, but it turned out that I did not. Hence, the extent of my testing is running test-gtk:gtk-demo application. Bug reports and/or patches are welcome.
From my testing, the example application runs on:
- SBCL 1.0.32 (tested with threading, it has been reported on the mailing list that 1.0.20 doesn't work)
- CLISP 2.47-r2
GTK2 fails in some scenarios when invalid operation floating point trap is enabled. It will be automatically disabled on SBCL when loading the features.lisp
file, which is triggered by loading the defsystem form (even if the systems themselves are not loaded).
I tried only X11 GTK+ from MacPorts. It should be possible to use Quartz based version of GTK just by changing library names, but I have not tried it. There is not GTK-GL extension for Quartz.
- SBCL 1.0.30 (from MacPorts)
- CCL 1.3 (from MacPorts)