The Janus library
-----------------

Janus provides an abstract user interface library that is independent from
the underlying widget library.  XML-style data structures are executed by
the dialog engine to allow any dialog to be described.  Janus also provides
a communication interface between the program and the dialog data to allow
reading and writing of the dialog information.

Since version 0.2, Janus no longer depends on a specific XML library
for parsing and is no longer bound to a specific file format.  Therefore,
the program must ensure that all core data structures are built before 
rendering to screen.

The visualization is up to a specific UI-library binding. There will
(hopefully) be several bindings available soon; as it should be
easy to implement such a binding.

Originally implemented as an internal library for Worldforge, Janus has been
designed with the idea that it will be extended and enhanced and be useful
in other projects.

The main benefits of this library are:
	* The ability to code a dialog once and use it in different
	        applications using different UI-libraries
	* Dialog descriptions can be sent from game servers to the clients
	* Dialog layouts and functions can be changed without recompiling 
          the application

About the name
--------------
Janus was a man in Roman mythology who owned multiple faces.  He was also
the god of entrances, of going in and coming out, and he is invoked when 
crops are sown.  (see http://www.frizzell.org/Greek/janus.html) 

The intent of this library is to allow a dialog to be presented using any
widget set from a single dialog definition.  

Directories
-----------
/src		sourcecode for libjanus
	        (make install  installs libjanus.so and the header files)

/examples	example dialogs

/bindings	UI library bindings ("implementations")
		    (make install is meant to install only the library and _NO_
		     header file; it is sufficient to load the binding at runtime
                     or to compile it into the binary )

Bindings
--------
/bindings/libuta	libuta is a very basic ui framework on top of SDL
			(http://libuta.sourceforge.net/)

/bindings/gtk     bindings against the Gimp Toolkit
      (http://www.gtk.org/)

-- Worldforge -- Aug 4, 2002 --
