[ this is -*-Text-*- ]

This is rep-gtk 0.0, a binding of GTK+ for my rep Lisp interpreter. It
is based on Marius Vollmer's guile-gtk package (initially version
0.15, updated to 0.17), with a new glue-code generator.

For more details see:

	http://rep-gtk.sourceforge.net/

Browse the CVS history at:

	http://tizer.dcs.warwick.ac.uk:8080/cgi-bin/cvsweb/rep-gtk


Installation
============

Basically, `./configure ; make ; make install'. If you're building from
the CVS sources, execute `aclocal ; autoconf' first.

Currently it only works with GTK 1.2.

Note that you get no choice where the library is installed, it always
goes into the rep exec-directory. This should be changed.


Usage
=====

Do `(require 'gtk)' to load the library, then call functions as in
guile-gtk. The only difference is that Lisp conventions are used for
booleans, i.e. nil for #f, and non-nil for #t.

I changed the names of three functions:

	gtk-idle-add-full => gtk-idle-add
	gtk-container-foreach-full => gtk-container-foreach
	gtk-signal-set-class-function-full => gtk-signal-set-class-function


libglade
========

Also included is a binding of James Henstridge's excellent libglade
(http://www.daa.com.au/~james/gnome/)

From the libglade README file:

    This library allows you to load glade interface files in a program
    at runtime. It doesn't require GLADE to be used, but GLADE is by
    far the easiest way to create the interface files.

So you can now use GLADE with rep! Here's an example from the
examples/test-libglade script:

    (require 'libglade)

    (let
        ((xml (or (glade-xml-new (car command-line-args))
                  (error "something bad happened"))))

      (glade-xml-signal-autoconnect xml)
      (gtk-main))

The glade-xml-new function takes a filename, and creates a widget
hierarchy. glade-xml-signal-autoconnect connects all signal handlers to
the lisp functions named in the GLADE file. You can also use the
glade-xml-signal-connect function to connect individually named
handlers. (see libglade.defs for the complete function list)


Caveats
=======

rep doesn't have floating-point types, or even full 32-bit integers.
Floating point values are truncated to integers, any integers that are
too big or small will be represented by cons cells containing two
integers, the car has the lower 24 bits, the cdr has the upper bits.

It's _very_ easy to crash the Lisp interpreter through invalid use of GTK..
