Lambda GTK is a Lisp interface for the entire GTK+2 family of libraries that is compatible with all platforms.
Programmers who are familiar with Lisp function call syntax and the GTK API will find programming with Lambda GTK to be straightforward. It has several useful features and functions that make it a great tool for developers. One such feature is its portable GUI programming, which is supported across all the Lisp environments it runs in.
Additionally, Lambda GTK provides automatic conversion between Lisp data and their equivalent GTK types. Function arguments that involve C pointers to ints, floats, and doubles are also handled automatically, with foreign values allocated and initialized by the wrappers. The pointers are then passed to GTK, dereferenced, and returned to the Lisp caller as multiple values.
To make programming with Lambda GTK more convenient for Lisp programmers, it uses Lisp names for GTK's enums, structs, and functions. Lisp names are formed by substituting "-" for "_" and (possibly) converting C library prefixes into exported Lisp package prefixes. It also provides Lisp accessor functions to read/write slot values in GTK structs. These accessors are named struct.slot and may include more than one slot name. For example, gtk:Widget.allocation.width is a valid accessor.
Finally, Lambda GTK ships with a Lisp symbol package(s) that export the GTK API and a read time conditional #+:gtk in *features*. Additionally, it includes a small set of utilities for working with GTK pointers, callbacks, and foreign storage in a portable way. All these factors make Lambda GTK a great tool for developing GUI applications in Lisp.
Version 0.1: N/A