xtent/counterpoint Athena/Hp/Motif/OpenLook Widget Release xtent is a simple function oriented language for creating X Toolkit (Xt) based applications. The syntax of the language is based on the X resource file syntax. The resulting language is a macro interpreter that looks like C/C++ mixed with a simple lisp. The language may be used as a standalone interpreter or as an embedded language with C. Most people use the stand alone interpreter, but it is also commonly used to create and manipulate widgets in C applications or to inspect and debug C or C++ based applications. xtent works with all of the common widget sets and allows full access to the X Toolkit (and many more useful functions). We have avoided subsetting Xt or the widget sets. The widgets are real compiled widgets, for example Motif from OSF. This release of xtent has two extra widgets supplied with it - a simple magnifier and a widget for displaying and manipulating graphs or networks. Custom widgets can be easily added to the system. xtent includes a copy of Sam Lefler's tiff library. We use this for reading image and fax files. We have added imake files to the library to make it a bit easier to use with X and have supplied a very simple function interface for creating images and pixmaps from tiff files. We will ship our rescalable drawing widget in the next month or so. Also at that time, Scott Anderson will be shipping his application builder and exporting our Mosaic based tutorial (from X World). Anyone who needs these pieces early than that or wishes to help please send me a note. Doug Blewett blewett@research.att.com This code can be compiled and installed by making a couple changes to the defines.imake and then running the commands install.def.sh xmkmf make World If you compile with gcc be sure to set -fwritable-strings. The changes to defines.imake tell the makefiles where important directories and files are located. Changes made to the toplevel Makefile will be propagated to the Makefiles in the sub-directories. The first three lines set up the widget set that is to be used. WIDGETSET = MOTIF WIDGETDIR = /usr/include/Xm WIDGETLIB = -lXm The legal values for WIDGETSET are HP_WIDGETS, ATHENA, OPENLOOK, and MOTIF. WIDGETDIR should be set to the directory name which includes the widget header files. This obviously could also be something like /usr/include/X11/widget. WIDGETLIB is the name of the widget set library file. The last thing one should usually have to modify is the name of the directory that contains the CounterPoint source tree. CPDIR = /home/blewett/cp.d CPDIR should point to the directory which includes this file and the rest of the source code. The next five sets of defines should not have to be modified. The next two lines tell where to get the XIpc library and should not have to be modified. XIPCDIR = $(CPDIR)/ipc/sockets XIPCLIB = $(CPDIR)/ipc/sockets/libXIpc.a The next two lines tell where to get the tiff library and should not have to be modified. TIFFDIR = $(CPDIR)/tiff/libtiff TIFFLIB = $(CPDIR)/tiff/libtiff/libtiff.a The next two lines tell where to get the xtent library and should not have to be modified. XTENTDIR = $(CPDIR)/xtent/lib XTENTLIB = $(CPDIR)/xtent/lib/libxtent.a CPWIDGETDIR points to the location of the supplementary widgets and should not have to be modified. CPWIDGETDIR = $(CPDIR)/widgets The next three entries tell where to put the bin, library, and include directories and should not have to be modified. CPBINDIR = $(CPDIR)/bin CPLIBDIR = $(CPDIR)/lib CPINCDIR = $(CPDIR)/include Now that you have edited in all of the changes, enter in the following commands: install.def.sh xmkmf make World When that completes enter: make install The executables will then be in CPBINDIR. The xtent examples are in the xtent directory. Files: C_P_args.h - ansi header file adapter Imakefile - imake file source README - this file README.ol.sgi - readme for work on sgi machines copyright.h - copywrite notice defines.ATHENA - Athena widget set base configuration file defines.MOTIF - Motif widget set base configuration file defines.OL - OpenLook widget set base configuration file defines.OL.sgi - OpenLook on SGI widget set base configuration file docs - documents directory - all symbolic links install.def.sh - installation script for defines.imake file ipc - interprocess communication library tiff - tagged image format file library widgets - supplementary widgets xtent - xtent source