lambda-gtk 0.1

λgtk is a cross-platform Lisp interface to the complete GTK+2 family of shared libraries.
λgtk is a cross-platform Lisp interface to the complete GTK+2 family of shared libraries. λgtk currently runs in the following Lisp environments:

PPC/Darwin OpenMCL 0.14.2-p1
x86/Linux SBCL 0.8.16
x86/Linux CMUCL 19a

and is released under the Lisp Lesser General Public License (LLGPL).

If you are familiar with Lisp function call syntax and the GTK API then programming with λgtk is straightforward.

Here are some key features of "lambda gtk":

· Portable GUI programming across the supported Lisp environments.
· Automatic conversion between Lisp data (booleans, numbers, strings) and their equivalent GTK types. Function arguments that involve C pointers to ints, floats and doubles are also handled automatically: foreign values are allocated and initialized by the wrappers, the pointers are passed to GTK and then dereferenced and returned to the Lisp caller as multiple values.
· 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 (see documentation section below).
· Lisp accessor functions to read/write slot values in GTK structs. Accessors are named struct.slot but may include more than one slot name, e.g. gtk:Widget.allocation.width. The first argument to all accessors is a pointer to a struct; if the referenced slot is an array then a second required argument provides the index. The last argument to all accessors is an optional value, that, if specified, replaces the current value in the slot. For example:

(gdk:Rectangle.x rect) ; return rect's x value
(gdk:Rectangle.x rect 100) ; set rect's x value

· Lisp symbol package(s) that export the GTK API and a read time conditional #+:gtk in *features*.
· A small set of utilities for working with GTK pointers, callbacks and foreign storage in a portable way (see documentation below).

last updated on:
August 10th, 2005, 15:49 GMT
license type:
LGPL (GNU Lesser General Public License) 
developed by:
Rick Taube
ROOT \ Programming \ UI (User Interfaces)
Download Button

In a hurry? Add it to your Download Basket!

user rating



Rate it!

Add your review!