gtk-cffi
GTK-CFFI is a Common Lisp GUI library, that provides concise and idiomatic syntax to use GTK+ library (for now GTK+ 3.0).

It should work in any lisp that supports CFFI.

It can be downloaded from http://common-lisp.net/project/gtk-cffi/

Requirements:

The main goal of the development is the maximum freedom for a user of the library. For example, you may use as a signal handler: a lisp function; a symbol, corresponding to lisp-function; a foreign-pointer to C function; a string = name of C function; a keyword, corresponding to the name of C function. Simply write (setf (gsignal widget :destroy) handler :data data). Data placeholder can contain any lisp object, you want to pass to the handler.

GTK interface is mapped like this (similar to CLOS slots):

GTK Lisp
gtk_widget_set_parent (setf (parent widget) new-parent)
gtk_widget_get_parent (parent widget)

Properties are accessed through (property widget :property-name) or, if you need several at once, (property widget :property-name1 :property-name2). Of course, they are setfable.


Gtk GTK binding Gtk3