README for xgcl: Gnu Common Lisp interface to X windows.    28 Aug 2006

Distributed under GNU Public License; copyright notices at the bottom.

xgcl is an interface from Gnu Common Lisp to the X library, Xlib.

This software provides a lightweight and fairy easy-to-use way to:
  * Draw diagrams from Lisp
  * Create interactive graphical interfaces
  * Make the interactive Lisp interfaces available via the Web

Beginning with release 2.6.8, xgcl is built into the make of GCL.

There is a "raw" interface to the Xlib, and an "easy-to-use"
interface built on top of it; we will only discuss the "easy-to-use"
version.

To use xgcl, start GCL and enter: (xgcl)
This will load xgcl and print a message inviting you to try (xgcl-demo).
(xgcl-demo) will create a small window and draw some examples in it.
You can try (wtestc), (wtestd), ... (wtestk) to try some other things.

The xgcl files are located in the directory xgcl-2/ relative to the
GCL directory.

The file gcl_dwtest.lsp contains the test examples; one way to
get started quickly is by using this file for examples.

There is also documentation:
   dwdoc.tex
   dwdoc.dvi
   dwdoc.html       http://www.cs.utexas.edu/users/novak/dwdoc.html
   dwdoc.pdf
   dwdoc.ps

To use the basic xgcl, you only need to invoke (xgcl).
To use some of the more advanced features such as menu-set, described
below, also load the file gcl_dwimportsb.lsp immediately after
invoking (xgcl), to import symbols.

Additional files that may be useful:

   gcl_menu-set.lsp       Source and some comments for menu-set
   gcl_menu-settrans.lsp  menu-set translated to Common Lisp
   gcl_pcalc.lsp          Pocket calculator example
   gcl_draw-gates.lsp     Draw boolean gate symbols
   gcl_draw.lsp           Interactive drawing program source
   gcl_drawtrans.lsp      Drawing program translated to Common Lisp
   gcl_dwindow.lsp        Easy-to-use interface source with comments
   gcl_dwtrans.lsp        Easy-to-use interface translated to Common Lisp
   gcl_editors.lsp        Editors for colors etc.
   gcl_editorstrans.lsp   Editors translated to Common Lisp
   gcl_ice-cream.lsp      Example created using Draw
   lispserver.lsp         Example web demo: a Lisp server
   lispservertrans.lsp 	  Lisp server translated to Common Lisp
   Xakcl.paper            Documentation on the "raw" Xlib interface
   Xakcl.example.lsp      some PRIMITIVE examples


This software provides a way to interface Lisp programs to the Web; see:

   http://www.cs.utexas.edu/users/novak/dwindow.html

There are two ways to accomplish a Web interface.

The first uses X directly, and requires that the user have an X server;
this is reliable and fast, but it only works for the Linux/Mac/Cygwin
subset of the world.  There can also be firewall issues.

The other option uses WeirdX, an X server written in Java.
The WeirdX interface is often slow, and sometimes doesn't work at all,
but when it works, it works with any web browser, even on Windows.
The WeirdX interface tends to leave "mouse droppings" on interactive
drawings.

There are numerous examples of these web interfaces at:

   http://www.cs.utexas.edu/users/novak/

The Draw demo is a good one to try.

---------------------------------------------------------------------------

Copyright (c) 2006 Gordon S. Novak Jr., Hiep Huu Nguyen,
William F. Schelter, Camm Maguire, and The University of Texas at Austin.

Copyright 1987 by Digital Equipment Corporation and Massachusetts Institute
of Technology.

See the files gnu.license and dec.copyright for copyright details.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Some of the files that interface to the Xlib are adapted from DEC/MIT files.
See the file dec.copyright for details.

Written by: Gordon S. Novak Jr., Hiep Huu Nguyen, and William F. Schelter,
Department of Computer Sciences, University of Texas at Austin  78712,
and Camm Maguire.

Xgcl is an interface from Gnu Common Lisp to the X library, Xlib,
adapted from X Consortium code by Hiep Huu Nguyen (hiep@cs.utexas.edu).

dwindow.lsp is an "easy to use" interface from Lisp to the Xlib,
written by Gordon S. Novak Jr. (novak@cs.utexas.edu)  It is written in
GLISP and has been translated into the Common Lisp file dwtrans.lsp,
which is incorporated into the make of Xgcl.
