/*
 *-----------------------------------------------------------------------------
 *  Copyright (c) 1993-1995 European Synchrotron Radiation Facility
 *
 *  Permission to use, copy, modify, and distribute this software and its
 *  documentation for any purpose and without fee is hereby granted, provided
 *  that the "Terms and Conditions of Distribution", given in the documentation
 *  to this software, are applicable and the above copyright message appears
 *  in each copy.
 *
 *-----------------------------------------------------------------------------
 *
 *
 *  CTAXT:      Combine Tcl/Tk with arbitrary X Toolkits 
 *              (into a single application)
 *
 *  Module:	1README.ctaxt
 *
 *  Purpose:    First information for potential users
 *
 *  17.12.1993  hp      first version
 *  07.01.1994  hp      changed the name to be downloaded from anonymous ftp
 *                      harbor.ecn.purdue.edu to "ctaxt1.0.tar.gz"
 *  14.01.1994  hp      adapted for version 1.1
 *  19.01.1994  hp      adapted for version 1.2
 *
 */




CTAXT - Combine Tcl/Tk with arbitrary X Toolkits into a single application
==========================================================================

The CTAXT interface enables application designers, to combine the powerful 
Tcl/Tk tools with other X Window toolkits into a single graphical user 
interface. It is designed in a way, that even existing applications can make
use of the CTAXT interface with minimal changes necessary.

The philosophy behind the interface is to put Tk main windows into existing
application windows, hence, from the user's point of view as well as from the
application's point of view there is just one application main window, 
containing several application windows, some are controlled by Tk and some
are controlled by other X toolkits. In order to get this working, the event
loop has to be controlled by Tk. To retrieve X events for other than Tk parts 
of the application, application designers have to provide a special function,
an explicit event handler, which will be called within the Tk event loop. Its
purpose is to filter and dispatch events.

Each of the Tk main windows within the application has its own Tcl interpreter
attached. This interpreter is needed for evaluating Tcl scripts (e.g. to create
Tk widgets within the window). It is registered with a unique name, so that it
can retrieve Tcl commands, sent by other Tcl interpreters on the same display.

To control a Tk window (e.g. the appearance of certain widgets within the 
window), the application can evaluate Tcl scripts within the interpreter 
attached to that window. This can even be done within callbacks of widgets 
(e.g. push-buttons) created by another X toolkit.

To control the application from a Tk window, the application designer has to
write new Tcl command procedures in C, create the responding commands within
the Tcl interpreter attached to that Tk window and call such a newly created 
command from a Tcl script evaluated within that interpreter (e.g. within a 
callback to a Tk widget).


Please read the file 1INSTALL.ctaxt carefully before building and installing 
CTAXT.




FILES
=====

Refer to the file "2FILES.ctaxt" within this directory.




DOCUMENTATION
=============

A documentation in postscript format is in the doc directory. It contains all
the information for building applications using the CTAXT interface, a 
reference for the functions provided by CTAXT, description of error messages
and warnings, a sample application and lots of other stuff.




MANUAL PAGES
============

Man pages in nroff/troff format are provided for the CTAXT C library functions
exported to applications.




EXAMPLE
=======

The directory example contains a sample application using Xt/Motif and the
CTAXT interface to access Tcl/Tk.




LINKING APPLICATIONS USING CTAXT
================================

Refer to the file "2BUILD.ctaxt" in this directory.




SOFTWARE VERSIONS
=================

The CTAXT interface was developed for

	o Tcl 7.3
	o Tk 3.6
	o TclX 7.3a

Have a look in the documentation for using different versions of Tcl/Tk than
the ones mentioned above.




LIST OF CHANGES
===============

Refer to the file "2CHANGES.ctaxt" for a history of changes made since the very
first distribution.




WHERE TO GET IT
===============

Tcl & Tk is available via anonymous ftp from:

   ftp.cs.berkeley.edu: /ucb/tcl/[tcl7.3.tar.Z tk3.6.tar.Z]
or
   ftp.neosoft.com: /pub/tcl/distrib/[tcl7.3.tar.gz tk3.6.tar.gz]
or
   ftp.uu.net: languages/tcl/[tcl7.3.tar.Z tk3.6.tar.Z]


Extended Tcl 7.3a can be downloaded by anonymous FTP from:

   ftp.neosoft.com: /pub/tcl/distrib/tclX7.3a.tar.gz
or
   harbor.ecn.purdue.edu: /pub/tcl/extensions/tclX7.3a.tar.Z


CTAXT 1.2 is available via anonymous ftp from:

   expga.esrf.fr [160.103.2.141]: /pub/ctaxt1.2.tar.Z
or
   harbor.ecn.purdue.edu [128.46.128.76]: /pub/tcl/extensions/ctaxt1.2.tar.gz




CONTRIBUTIONS
=============

Special thanks to John Ousterhout for Tcl, Tk and to Karl Lehenbauer and
Mark Diekhans (TclX) for the support they have given us.




BUG REPORTS
===========

Please mail suggestions, comments and bug reports to

	bugs@expgb.esrf.fr

Specify CTAXT (as the software you are reporting the bug for) in the subject 
field.
