cl-gtk2-gtk
***********

Overview
********

cl-gtk2 is the GUI library for Common Lisp. cl-gtk2 is based on Gtk+ GUI library and is Common Lisp binding for it. cl-gtk2 allows you to create graphical user interfaces for Common Lisp applications.

As Gtk+ is based on object system GObject, cl-gtk2 is based on a binding to this object system called cl-gtk2-gobject.

cl-gtk2 provides a thin wrapper around Gtk+ functionality, mostly retaining the same set of classes, properties and methods.

The important parts of Gtk+ are:

  * GObject type system

       * Classes

       * Objects

       * Signals

  * Events

  * Layout and composition of widgets

  * Widget set

  * Using Gtk+ with threads

  * Building stand-alone applications

Installation
************

cl-gtk2 has the following dependencies. They all must be installed before installing cl-gtk2.

  * CFFI (version >= 0.10.4)

  * Trivial-Garbage (version >= 0.18)

  * Iterate (version >= 1.4.3)

  * Bordeaux-Threads (version >= 0.6.0)

  * Closer-MOP (version >= 0.55)

At first, source code of cl-gtk2 needs to be downloaded. There are two options to download the sources: use Git or download tar.gz archive.

To get sources with Git, clone cl-gtk2 repository:

     git clone git://repo.or.cz/cl-gtk2.git

or the mirror:

     git clone git://github.com/dmitryvk/cl-gtk2.git

Or download and unpack the tar.gz-archived snapshot of cl-gtk2.

To be able to compile, load and use cl-gtk2, you should register the ASDF system definitions.

To do this, either add glib, gdk and gtk directories to asdf:*central-registry*:

     (push "/path/to/cl-gtk2/glib" asdf:*central-registry*)
     (push "/path/to/cl-gtk2/gdk" asdf:*central-registry*)
     (push "/path/to/cl-gtk2/gtk" asdf:*central-registry*)

or create symlinks to cl-gtk2-glib.asd, cl-gtk2-gdk.asd and cl-gtk2-gtk.asd files in a directory where ASDF systems are located (it might be /usr/share/common-lisp/systems/ for system-wide installation in Gentoo Linux and Debian Linux, ~/.sbcl/systems/ for user installation for SBCL compiler):

     cd ~/.sbcl/systems           # depends on your system
     ln -s /path/to/cl-gtk2/glib/cl-gtk2-glib.asd .
     ln -s /path/to/cl-gtk2/gdk/cl-gtk2-gdk.asd .
     ln -s /path/to/cl-gtk2/gtk/cl-gtk2-gtk.asd .

GObject Reference
*****************

     [file gobject.ref.texi not included]

Gdk Reference
*************

     [file gdk.ref.texi not included]