Overview of guile-fltk

guile-fltk is a module for Guile that binds the Fltk widget library to scheme.

Fltk, or the "fast light tool kit", is an LGPL'd C++ widget library that supports X, win32, and OpenGL. If you have never heard of Fltk, you might be interested in reading a summary of Fltk's features.

Guile is the GNU project's extensibility language. It is a powerful scheme interpreter that can easily be embeded into other applications.

guile-fltk intends to provide a Guile binding to Fltk that is robust and powerful. I originally started writing guile-fltk so that Extreme Wave, the 3d modeller I am developing, could have an extensible user interface (in much the same way Mel can extend Maya). I am also distributing it seperately under the LGPL, because I think it is a rather nice widget toolkit with an intuitive API that other programmers might find useful. At present, guile-fltk should be considered beta quality software. Some things have been tested better than others, and there may be a few more minor API changes before the 1.0 release. Feel free to email me or to post any questions you might have on the Extreme Wave mailing list. I'm very interested in hearing from anyone that tries to use guile-fltk in their own projects.

The latest version of guile-fltk includes a "hacked" version of fluid (the Fltk graphical interface designer) that can generate scheme code for interfaces. Check out the tutorial!

Tutorial

Check out the new tutorial intended for guile-fltk beginners.

Documentation

Guile-fltk is able to generate it's own documentation. One of the examples prints out an alphabatized list of all the available scheme functions and a breif description. For a more in depth reference, please refer to the Fltk documentation for widget methods and syntax. The guile-fltk methods are usually named extrememly similarly to the original c++ methods. Most changes in style and syntax are just to make the binding more schemish. For example, Fl_Button obj->clear() would be written as (fltk-button::clear obj) in guile-fltk. Several of the demos from Fltk are re-written in scheme as demos for guile-fltk -- these may serve as a good reference.

Requirements

fltk >= 1.0.4 - As a shared library.
guile >= 1.3.2
libtool >= 1.3.2

Download

The fourth release of guile-fltk is now available. It should still be considered beta quality, but it is in a usable state, and is quickly becoming more complete and stable. It is know to compile under RedHat Linux, Slackware Linux and SGI Irix. It can be downloaded here:

guile-fltk.0.4.0.tar.gz (179K) -- (v 0.4.0 : released 10.11.99)
guile-fltk.0.2.0.tar.gz (69K) -- (v 0.2.0 : released 7.14.99)
guile-fltk.0.1.2.tar.gz (54K) -- (v 0.1.2 : released 5.18.99)

Screenshots and Sample Code

guile-fltk looks *exactly* like Fltk. But here's a screenshot if it makes you feel better, (yes, there are better demos than this!)

(define window (fltk-window::new -1 -1 300 180 "Hello World Window"))
(define box (fltk-box::new 20 40 260 100 "Hello, World!"))
(fltk-widget::set-box FL_UP_BOX)
(fltk-widget::set-label-font box (+ FL_BOLD FL_ITALIC))
(fltk-widget::set-label-size box 36)
(fltk-widget::set-label-type box FL_SHADOW_LABEL)
(fltk-group::end window)
(fltk-window::show window)
(fltk-fl::run)

> The Extreme Wave Page
>> My Home Page


Last modified: Mon Oct 11 09:51:32 CDT 1999