axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20080603.01.tpd.patch (remove src/graph/view2d)


From: daly
Subject: [Axiom-developer] 20080603.01.tpd.patch (remove src/graph/view2d)
Date: Mon, 2 Jun 2008 05:27:50 -0500

src/graph/view2d has been replaced by bookvol8.
The makefiles no longer use this subdirectory and it has been removed.
======================================================================
diff --git a/changelog b/changelog
index a84a022..1704d83 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,17 @@
+20080602 tpd src/graph/view2d removed.
+20080602 tpd src/graph/view2d/write2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/viewport2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/stuff2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/spadaction2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/process2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/pot2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/Makefile removed, replace by bookvol8
+20080602 tpd src/graph/view2d/main2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/header2.h removed, replace by bookvol8
+20080602 tpd src/graph/view2d/graph2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/globals2.h removed, replace by bookvol8
+20080602 tpd src/graph/view2d/control2d.c removed, replace by bookvol8
+20080602 tpd src/graph/view2d/buttons2d.c removed, replace by bookvol8
 20080602 tpd books/bookvol8 make view2d
 20080602 tpd src/graph/Makefile make view2d from bookvol8
 20080601 tpd books/bookvol8 document APIs, formats, environment
diff --git a/src/graph/view2d/Makefile.pamphlet 
b/src/graph/view2d/Makefile.pamphlet
deleted file mode 100644
index 202e8b2..0000000
--- a/src/graph/view2d/Makefile.pamphlet
+++ /dev/null
@@ -1,378 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d Makefile}
-\author{Timothy Daly}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{environment variables}
-<<environment>>=
-IN=    ${SRC}/graph/view2d
-MIDINT=        ${INT}/graph/view2d
-MIDOBJ=        ${OBJ}/${SYS}/graph/view2d
-LIB=   ${OBJ}/${SYS}/lib
-OUT=   ${MNT}/${SYS}/lib
-DOC=    ${MNT}/${SYS}/doc/src/graph
-
-# local include files shared by graphics
-LINC=  ${SRC}/graph/include
-
-# global include files shared by everyone
-GINC=  ${SRC}/include
-
-LDFLAGS = ${LDF} ${STATIC} -lX11 -lm ${LDF}
-
-@
-\section{view2d code}
-\subsection{buttons2d}
-<<buttons2d.c (MIDINT from IN)>>=
-${MIDINT}/buttons2d.c: ${IN}/buttons2d.c.pamphlet
-       @ echo 1 making ${MIDINT}/buttons2d.c from ${IN}/buttons2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/buttons2d.c.pamphlet >buttons2d.c )
-
-@
-<<buttons2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/buttons2d.o: ${HEADERS} ${MIDINT}/buttons2d.c
-       @ echo 2 making ${MIDOBJ}/buttons2d.o from ${MIDINT}/buttons2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/buttons2d.c )
-
-@
-<<buttons2d.c.dvi (DOC from IN)>>=
-${DOC}/buttons2d.c.dvi: ${IN}/buttons2d.c.pamphlet 
-       @echo 3 making ${DOC}/buttons2d.c.dvi from ${IN}/buttons2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/buttons2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} buttons2d.c ; \
-       rm -f ${DOC}/buttons2d.c.pamphlet ; \
-       rm -f ${DOC}/buttons2d.c.tex ; \
-       rm -f ${DOC}/buttons2d.c )
-
-@
-\subsection{control2d}
-<<control2d.c (MIDINT from IN)>>=
-${MIDINT}/control2d.c: ${IN}/control2d.c.pamphlet
-       @ echo 4 making ${MIDINT}/control2d.c from ${IN}/control2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/control2d.c.pamphlet >control2d.c )
-
-@
-<<control2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/control2d.o: ${HEADERS} ${MIDINT}/control2d.c \
-                       ${LINC}/mouse11.bitmap ${LINC}/mouse11.mask
-       @ echo 5 making ${MIDOBJ}/control2d.o from ${MIDINT}/control2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/control2d.c )
-
-@
-<<control2d.c.dvi (DOC from IN)>>=
-${DOC}/control2d.c.dvi: ${IN}/control2d.c.pamphlet 
-       @echo 6 making ${DOC}/control2d.c.dvi from ${IN}/control2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/control2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} control2d.c ; \
-       rm -f ${DOC}/control2d.c.pamphlet ; \
-       rm -f ${DOC}/control2d.c.tex ; \
-       rm -f ${DOC}/control2d.c )
-
-@
-\subsection{graph2d}
-<<graph2d.c (MIDINT from IN)>>=
-${MIDINT}/graph2d.c: ${IN}/graph2d.c.pamphlet
-       @ echo 7 making ${MIDINT}/graph2d.c from ${IN}/graph2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/graph2d.c.pamphlet >graph2d.c )
-
-@
-<<graph2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/graph2d.o: ${HEADERS} ${MIDINT}/graph2d.c
-       @ echo 8 making ${MIDOBJ}/graph2d.o from ${MIDINT}/graph2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/graph2d.c )
-
-@
-<<graph2d.c.dvi (DOC from IN)>>=
-${DOC}/graph2d.c.dvi: ${IN}/graph2d.c.pamphlet 
-       @echo 9 making ${DOC}/graph2d.c.dvi from ${IN}/graph2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/graph2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} graph2d.c ; \
-       rm -f ${DOC}/graph2d.c.pamphlet ; \
-       rm -f ${DOC}/graph2d.c.tex ; \
-       rm -f ${DOC}/graph2d.c )
-
-@
-\subsection{main2d}
-<<main2d.c (MIDINT from IN)>>=
-${MIDINT}/main2d.c: ${IN}/main2d.c.pamphlet
-       @ echo 10 making ${MIDINT}/main2d.c from ${IN}/main2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/main2d.c.pamphlet >main2d.c )
-
-@
-<<main2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/main2d.o: ${LINC}/xdefs.h ${HEADERS} ${MIDINT}/main2d.c
-       @ echo 11 making ${MIDOBJ}/main2d.o from ${MIDINT}/main2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/main2d.c )
-
-@
-<<main2d.c.dvi (DOC from IN)>>=
-${DOC}/main2d.c.dvi: ${IN}/main2d.c.pamphlet 
-       @echo 12 making ${DOC}/main2d.c.dvi from ${IN}/main2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/main2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} main2d.c ; \
-       rm -f ${DOC}/main2d.c.pamphlet ; \
-       rm -f ${DOC}/main2d.c.tex ; \
-       rm -f ${DOC}/main2d.c )
-
-@
-\subsection{pot2d}
-<<pot2d.c (MIDINT from IN)>>=
-${MIDINT}/pot2d.c: ${IN}/pot2d.c.pamphlet
-       @ echo 13 making ${MIDINT}/pot2d.c from ${IN}/pot2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/pot2d.c.pamphlet >pot2d.c )
-
-@
-<<pot2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/pot2d.o: ${HEADERS} ${MIDINT}/pot2d.c
-       @ echo 14 making ${MIDOBJ}/pot2d.o from ${MIDINT}/pot2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/pot2d.c )
-
-@
-<<pot2d.c.dvi (DOC from IN)>>=
-${DOC}/pot2d.c.dvi: ${IN}/pot2d.c.pamphlet 
-       @echo 15 making ${DOC}/pot2d.c.dvi from ${IN}/pot2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/pot2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} pot2d.c ; \
-       rm -f ${DOC}/pot2d.c.pamphlet ; \
-       rm -f ${DOC}/pot2d.c.tex ; \
-       rm -f ${DOC}/pot2d.c )
-
-@
-\subsection{process2d}
-<<process2d.c (MIDINT from IN)>>=
-${MIDINT}/process2d.c: ${IN}/process2d.c.pamphlet
-       @ echo 16 making ${MIDINT}/process2d.c from ${IN}/process2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/process2d.c.pamphlet >process2d.c )
-
-@
-<<process2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/process2d.o: ${HEADERS} ${MIDINT}/process2d.c
-       @ echo 17 making ${MIDOBJ}/process2d.o from ${MIDINT}/process2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/process2d.c )
-
-@
-<<process2d.c.dvi (DOC from IN)>>=
-${DOC}/process2d.c.dvi: ${IN}/process2d.c.pamphlet 
-       @echo 18 making ${DOC}/process2d.c.dvi from ${IN}/process2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/process2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} process2d.c ; \
-       rm -f ${DOC}/process2d.c.pamphlet ; \
-       rm -f ${DOC}/process2d.c.tex ; \
-       rm -f ${DOC}/process2d.c )
-
-@
-\subsection{spadaction2d}
-<<spadaction2d.c (MIDINT from IN)>>=
-${MIDINT}/spadaction2d.c: ${IN}/spadaction2d.c.pamphlet
-       @ echo 19 making ${MIDINT}/spadaction2d.c from 
${IN}/spadaction2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/spadaction2d.c.pamphlet >spadaction2d.c )
-
-@
-<<spadaction2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/spadaction2d.o: ${HEADERS} ${MIDINT}/spadaction2d.c
-       @ echo 20 making ${MIDOBJ}/spadaction2d.o from ${MIDINT}/spadaction2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/spadaction2d.c )
-
-@
-<<spadaction2d.c.dvi (DOC from IN)>>=
-${DOC}/spadaction2d.c.dvi: ${IN}/spadaction2d.c.pamphlet 
-       @echo 21 making ${DOC}/spadaction2d.c.dvi from 
${IN}/spadaction2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/spadaction2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} spadaction2d.c ; \
-       rm -f ${DOC}/spadaction2d.c.pamphlet ; \
-       rm -f ${DOC}/spadaction2d.c.tex ; \
-       rm -f ${DOC}/spadaction2d.c )
-
-@
-\subsection{stuff2d}
-<<stuff2d.c (MIDINT from IN)>>=
-${MIDINT}/stuff2d.c: ${IN}/stuff2d.c.pamphlet
-       @ echo 25 making ${MIDINT}/stuff2d.c from ${IN}/stuff2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/stuff2d.c.pamphlet >stuff2d.c )
-
-@
-<<stuff2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/stuff2d.o: ${HEADERS} ${MIDINT}/stuff2d.c
-       @ echo 26 making ${MIDOBJ}/stuff2d.o from ${MIDINT}/stuff2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/stuff2d.c )
-
-@
-<<stuff2d.c.dvi (DOC from IN)>>=
-${DOC}/stuff2d.c.dvi: ${IN}/stuff2d.c.pamphlet 
-       @echo 27 making ${DOC}/stuff2d.c.dvi from ${IN}/stuff2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/stuff2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} stuff2d.c ; \
-       rm -f ${DOC}/stuff2d.c.pamphlet ; \
-       rm -f ${DOC}/stuff2d.c.tex ; \
-       rm -f ${DOC}/stuff2d.c )
-
-@
-\subsection{viewport2d}
-<<viewport2d.c (MIDINT from IN)>>=
-${MIDINT}/viewport2d.c: ${IN}/viewport2d.c.pamphlet
-       @ echo 28 making ${MIDINT}/viewport2d.c from ${IN}/viewport2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/viewport2d.c.pamphlet >viewport2d.c )
-
-@
-<<viewport2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/viewport2d.o: ${HEADERS} ${LINC}/spadbitmap.bitmap \
-                        ${LINC}/spadmask.mask ${MIDINT}/viewport2d.c 
-       @ echo 29 making ${MIDOBJ}/viewport2d.o from ${MIDINT}/viewport2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/viewport2d.c )
-
-@
-<<viewport2d.c.dvi (DOC from IN)>>=
-${DOC}/viewport2d.c.dvi: ${IN}/viewport2d.c.pamphlet 
-       @echo 30 making ${DOC}/viewport2d.c.dvi from 
${IN}/viewport2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/viewport2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} viewport2d.c ; \
-       rm -f ${DOC}/viewport2d.c.pamphlet ; \
-       rm -f ${DOC}/viewport2d.c.tex ; \
-       rm -f ${DOC}/viewport2d.c )
-
-@
-\subsection{write2d}
-<<write2d.c (MIDINT from IN)>>=
-${MIDINT}/write2d.c: ${IN}/write2d.c.pamphlet 
-       @ echo 31 making ${MIDINT}/write2d.c from ${IN}/write2d.c.pamphlet
-       @( cd ${MIDINT} ; \
-       ${TANGLE} ${IN}/write2d.c.pamphlet >write2d.c )
-
-@
-<<write2d.o (MIDOBJ from MIDINT)>>=
-${MIDOBJ}/write2d.o: ${MIDINT}/write2d.c ${LINC}/write.h ${HEADERS}
-       @ echo 32 making ${MIDOBJ}/write2d.o from ${MIDINT}/write2d.c
-       @ ( cd ${MIDOBJ} ; ${CC} -c ${CFLAGS} ${MIDINT}/write2d.c )
-
-@
-<<write2d.c.dvi (DOC from IN)>>=
-${DOC}/write2d.c.dvi: ${IN}/write2d.c.pamphlet 
-       @echo 33 making ${DOC}/write2d.c.dvi from ${IN}/write2d.c.pamphlet 
-       @(cd ${DOC} ; \
-       cp ${IN}/write2d.c.pamphlet ${DOC} ; \
-       ${DOCUMENT} ${NOISE} write2d.c ; \
-       rm -f ${DOC}/write2d.c.pamphlet ; \
-       rm -f ${DOC}/write2d.c.tex ; \
-       rm -f ${DOC}/write2d.c )
-
-@
-\subsection{view2d}
-Renaud Rioboo pointed out that we should dynamically link Xpm
-rather than use static libraries since statics fail on Fedora 5.
-<<view2d>>=
-${OUT}/view2d: ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES}
-       @ echo 34 linking ${OUT}/view2d
-       @ ${CC} ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES} \
-        -o ${OUT}/view2d $(LDFLAGS) 
-
-@
-<<*>>=
-
-<<environment>>
-
-CFLAGS  = ${CCF} -I${LINC} -I${GINC} -I${IN}
-
-DOCFILES= ${DOC}/buttons2d.c.dvi    ${DOC}/control2d.c.dvi \
-          ${DOC}/graph2d.c.dvi      ${DOC}/main2d.c.dvi \
-          ${DOC}/pot2d.c.dvi        ${DOC}/process2d.c.dvi  \
-          ${DOC}/spadaction2d.c.dvi ${DOC}/stuff2d.c.dvi \
-          ${DOC}/viewport2d.c.dvi   ${DOC}/write2d.c.dvi
-
-VIEW2D_OBJS= \
- ${MIDOBJ}/buttons2d.o    ${MIDOBJ}/control2d.o ${MIDOBJ}/graph2d.o    \
- ${MIDOBJ}/main2d.o       ${MIDOBJ}/pot2d.o     ${MIDOBJ}/process2d.o  \
- ${MIDOBJ}/spadaction2d.o ${MIDOBJ}/stuff2d.o   ${MIDOBJ}/viewport2d.o \
- ${MIDOBJ}/write2d.o
-
-GDRAW= ${OBJ}/${SYS}/graph/gdraws
-
-GDRAW_OBJS = ${GDRAW}/gfun.o ${OBJ}/${SYS}/lib/hash.o
-
-HEADERS = ${IN}/header2.h   ${IN}/globals2.h      ${LINC}/view2d.h \
-          ${LINC}/actions.h ${LINC}/viewcommand.h ${GINC}/view.h   ${LINC}/g.h
-
-LIBFILES=${LIB}/bsdsignal.o ${LIB}/util.o       ${LIB}/pixmap.o    \
-         ${LIB}/halloc.o    ${LIB}/spadcolors.o ${LIB}/xspadfill.o \
-         ${LIB}/xdither.o   ${LIB}/xshade.o 
-
-all: ${VIEW2D_OBJS} ${GDRAW_OBJS} ${LIBFILES} ${OUT}/view2d ${DOCFILES}
-       @ echo 36 finished ${IN}
-
-<<view2d>>
-
-<<buttons2d.c (MIDINT from IN)>>
-<<buttons2d.o (MIDOBJ from MIDINT)>>
-<<buttons2d.c.dvi (DOC from IN)>>
-
-<<control2d.c (MIDINT from IN)>>
-<<control2d.o (MIDOBJ from MIDINT)>>
-<<control2d.c.dvi (DOC from IN)>>
-
-<<graph2d.c (MIDINT from IN)>>
-<<graph2d.o (MIDOBJ from MIDINT)>>
-<<graph2d.c.dvi (DOC from IN)>>
-
-<<main2d.c (MIDINT from IN)>>
-<<main2d.o (MIDOBJ from MIDINT)>>
-<<main2d.c.dvi (DOC from IN)>>
-
-<<pot2d.c (MIDINT from IN)>>
-<<pot2d.o (MIDOBJ from MIDINT)>>
-<<pot2d.c.dvi (DOC from IN)>>
-
-<<process2d.c (MIDINT from IN)>>
-<<process2d.o (MIDOBJ from MIDINT)>>
-<<process2d.c.dvi (DOC from IN)>>
-
-<<spadaction2d.c (MIDINT from IN)>>
-<<spadaction2d.o (MIDOBJ from MIDINT)>>
-<<spadaction2d.c.dvi (DOC from IN)>>
-
-<<stuff2d.c (MIDINT from IN)>>
-<<stuff2d.o (MIDOBJ from MIDINT)>>
-<<stuff2d.c.dvi (DOC from IN)>>
-
-<<viewport2d.c (MIDINT from IN)>>
-<<viewport2d.o (MIDOBJ from MIDINT)>>
-<<viewport2d.c.dvi (DOC from IN)>>
-
-<<write2d.c (MIDINT from IN)>>
-<<write2d.o (MIDOBJ from MIDINT)>>
-<<write2d.c.dvi (DOC from IN)>>
-
-clean: 
-       @ echo 37 cleaning ${IN}/view2d
-
-document: 
-       @ echo 38 documenting ${IN}/view2d
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/buttons2d.c.pamphlet 
b/src/graph/view2d/buttons2d.c.pamphlet
deleted file mode 100644
index 2a08486..0000000
--- a/src/graph/view2d/buttons2d.c.pamphlet
+++ /dev/null
@@ -1,732 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d buttons2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _BUTTONS2D_C
-
-#include <string.h>
-
-#include "header2.h"
-#include "buttons2d.h1"
-#include "all-2d.h1"
-
-
-
-
-#define bColor         98
-#define graphColor     138
-
-/*****************************************************
- * int initButtons(buttons)                         *
- *                                                  *
- * Creates the fields for each button window in the  *
- * two dimensional control panel, and returns the    *
- * number of buttons created.                       *
- *                                                  *
- *****************************************************/
-
-int 
-initButtons (buttonStruct *buttons)
-{
-  int ii, num = 0;
-
-/********** Scale(Zoom) and Translate Potentiometer Buttons **********/
-
-  /* Title:  "Scale" */
-  ii = scale2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 85;
-  buttons[ii].buttonWidth  = 110;
-  buttons[ii].buttonHeight = 80;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = yes;          /* scale is a potentiometer */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = potMASK;
-  buttons[ii].textColor           = 164;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Title:  "Translate" */
-  ii = translate2D;
-  buttons[ii].buttonX     = 121;
-  buttons[ii].buttonY     = 85;
-  buttons[ii].buttonWidth  = 110;
-  buttons[ii].buttonHeight = 80;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = yes;          /* translate is a potentiometer */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = potMASK;
-  buttons[ii].textColor           = 21;           /* line color of translate 
arrow */
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Scale potentiometer buttons */
-
-  /* Scale along X axis */
-  ii = zoom2Dx;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 55;
-  buttons[ii].buttonWidth  = 53;
-  buttons[ii].buttonHeight = 25;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"X On ");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-
-  /* Scale along Y axis */
-  ii = zoom2Dy;
-  buttons[ii].buttonX     = 62;
-  buttons[ii].buttonY     = 55;
-  buttons[ii].buttonWidth  = 53;
-  buttons[ii].buttonHeight = 25;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Y On ");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Translate along X axis */
-  ii = translate2Dx;
-  buttons[ii].buttonX     = 121;
-  buttons[ii].buttonY     = 55;
-  buttons[ii].buttonWidth  = 53;
-  buttons[ii].buttonHeight = 25;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"X On ");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-
-  /* Translate along Y axis */
-  ii = translate2Dy;
-  buttons[ii].buttonX     = 179;
-  buttons[ii].buttonY     = 55;
-  buttons[ii].buttonWidth  = 53;
-  buttons[ii].buttonHeight = 25;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Y On ");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-
-  /* Axes Turned On/Off */
-  ii = axesOnOff2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 292;
-  buttons[ii].buttonWidth  = 90;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Axes On ");
-  buttons[ii].textColor           = 75;
-  buttons[ii].textHue     = 10;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Units Turned On/Off */
-  ii = unitsOnOff2D;
-  buttons[ii].buttonX     = 100;
-  buttons[ii].buttonY     = 292;
-  buttons[ii].buttonWidth  = 90;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Units Off");
-  buttons[ii].textColor           = 75;
-  buttons[ii].textHue     = 10;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Generate a Postscript file */
-  ii = ps2D;
-  buttons[ii].buttonX     = 195;
-  buttons[ii].buttonY     = 292;
-  buttons[ii].buttonWidth  = 36;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"PS");
-  buttons[ii].textColor           = 35;
-  buttons[ii].textHue     = 5;
-  buttons[ii].textShade           = 2;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Bounding Rectangle On/Off */
-  ii = spline2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 329;
-  buttons[ii].buttonWidth  = 66;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Box Off");
-  buttons[ii].textColor           = 7;
-  buttons[ii].textHue     = 26;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Graph points On/Off */
-  ii = pointsOnOff;
-  buttons[ii].buttonX     = 75;
-  buttons[ii].buttonY     = 329;
-  buttons[ii].buttonWidth  = 67;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Pts On ");
-  buttons[ii].textColor           = 7;
-  buttons[ii].textHue     = 26;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Graph lines On/Off */
-  ii = connectOnOff;
-  buttons[ii].buttonX     = 147;
-  buttons[ii].buttonY     = 329;
-  buttons[ii].buttonWidth  = 84;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Lines On ");
-  buttons[ii].textColor           = 7;
-  buttons[ii].textHue     = 26;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Reset View Position Button */
-  ii = reset2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 364;
-  buttons[ii].buttonWidth  = 60;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Reset");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].textHue     = 5;
-  buttons[ii].textShade           = 2;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Hide Control Panel */
-  ii = hideControl2D;
-  buttons[ii].buttonX     = 70;
-  buttons[ii].buttonY     = 364;
-  buttons[ii].buttonWidth  = 88;
-  buttons[ii].buttonHeight = 30;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Hide Panel");
-  buttons[ii].textColor           = bColor;
-  buttons[ii].textHue     = 5;
-  buttons[ii].textShade           = 2;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Exits from the viewport running */
-  ii = closeAll2D;
-  buttons[ii].buttonX     = 169;
-  buttons[ii].buttonY     = 370;
-  buttons[ii].buttonWidth  = 61;
-  buttons[ii].buttonHeight = 24;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Quit");
-  buttons[ii].textColor           = 13;
-  buttons[ii].textHue     = 29;
-  buttons[ii].textShade           = 2;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Indicates that the graph from a viewport is to be picked up. */
-  ii = pick2D;
-  buttons[ii].buttonX     = 190;
-  buttons[ii].buttonY     = 217;
-  buttons[ii].buttonWidth  = 40;
-  buttons[ii].buttonHeight = 24;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Pick");
-  buttons[ii].textColor           = 123;
-  buttons[ii].textHue     = 19;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Indicates that the graph from a viewport is to be dropped into a slot. */
-  ii = drop2D;
-  buttons[ii].buttonX     = 190;
-  buttons[ii].buttonY     = 245;
-  buttons[ii].buttonWidth  = 40;
-  buttons[ii].buttonHeight = 24;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Drop");
-  buttons[ii].textColor           = 123;
-  buttons[ii].textHue     = 19;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Indicates that the status of the graphs being displayed in the viewport
-     is to be cleared. */
-  ii = clear2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 217;
-  buttons[ii].buttonWidth  = 49;
-  buttons[ii].buttonHeight = 24;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Clear");
-  buttons[ii].textColor           = 123;
-  buttons[ii].textHue     = 19;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* Asks for the scale and translation information for the specified graph. */
-  ii = query2D;
-  buttons[ii].buttonX     = 5;
-  buttons[ii].buttonY     = 245;
-  buttons[ii].buttonWidth  = 49;
-  buttons[ii].buttonHeight = 24;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"Query");
-  buttons[ii].textColor           = 123;
-  buttons[ii].textHue     = 19;
-  buttons[ii].textShade           = 3;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  /* These buttons indicate the 9 available slot numbers into which
-     a 2D graph can be placed, and the status of the graph, i.e. whether
-     it is displayed or not. */
-
-  ii = graph1;
-  buttons[ii].buttonX     = graphBarLeft;
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"1");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect1;
-  buttons[ii].buttonX     = graphBarLeft;
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"^");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph2;
-  buttons[ii].buttonX     = graphBarLeft + (graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"2");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect2;
-  buttons[ii].buttonX     = graphBarLeft + (graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph3;
-  buttons[ii].buttonX     = graphBarLeft + 2*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"3");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect3;
-  buttons[ii].buttonX     = graphBarLeft + 2*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;  /**** blend these three together ***/
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph4;
-  buttons[ii].buttonX     = graphBarLeft + 3*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"4");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect4;
-  buttons[ii].buttonX     = graphBarLeft + 3*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph5;
-  buttons[ii].buttonX     = graphBarLeft + 4*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"5");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect5;
-  buttons[ii].buttonX     = graphBarLeft + 4*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph6;
-  buttons[ii].buttonX     = graphBarLeft + 5*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"6");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect6;
-  buttons[ii].buttonX     = graphBarLeft + 5*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph7;
-  buttons[ii].buttonX     = graphBarLeft + 6*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"7");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect7;
-  buttons[ii].buttonX     = graphBarLeft + 6*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph8;
-  buttons[ii].buttonX     = graphBarLeft + 7*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"8");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect8;
-  buttons[ii].buttonX     = graphBarLeft + 7*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"-");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graph9;
-  buttons[ii].buttonX     = graphBarLeft + 8*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = yes;
-  buttons[ii].graphSelect  = no;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"9");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  ii = graphSelect9;
-  buttons[ii].buttonX     = graphBarLeft + 8*(graphBarWidth);
-  buttons[ii].buttonY     = graphBarTop + graphBarHeight;
-  buttons[ii].buttonWidth  = graphBarWidth;
-  buttons[ii].buttonHeight = graphBarHeight-2;
-  buttons[ii].buttonKey           = ii;
-  buttons[ii].pot         = no;                /* this is a regular button */
-  buttons[ii].graphNum    = no;
-  buttons[ii].graphSelect  = yes;
-  buttons[ii].mask        = buttonMASK;
-  strcpy(buttons[ii].text,"*");
-  buttons[ii].textColor           = graphColor;
-  buttons[ii].xHalf       = buttons[ii].buttonWidth/2;
-  buttons[ii].yHalf       = buttons[ii].buttonHeight/2;
-  ++num;
-
-  return(num);
-}
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/control2d.c.pamphlet 
b/src/graph/view2d/control2d.c.pamphlet
deleted file mode 100644
index b03f32f..0000000
--- a/src/graph/view2d/control2d.c.pamphlet
+++ /dev/null
@@ -1,605 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d control2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _CONTROL2D_C
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-#include <X11/X.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#include "header2.h"
-#include "buttons2d.h1"
-#include "all-2d.h1"
-#include "gfun.h1"
-#include "xspadfill.h1"
-#include "util.h1"
-
-
-#include "mouse11.bitmap"
-#include "mouse11.mask"
-
-/* Defines the pixmap for the arrow displayed in the scale window */
-
-#define scaleArrowN 11
-static XPoint scaleArrow[scaleArrowN] = {
-  {55,14},{64,23},{59,23},
-  {66,45},{79,45},
-  {55,69},
-  {31,45},{44,45},
-  {51,23},{46,23},{55,14} };
-
-/* Defines the pixmap for the arrows displayed in the translate window */
-
-#define translateArrowN 25
-static XPoint translateArrow[translateArrowN] = {
-  {55,2},{60,10},{58,10},{58,37},
-  {85,37},{85,35},{93,40},{85,45},{85,43},{58,43},
-  {58,70},{60,70},{55,78},{50,70},{52,70},{52,43},
-  {25,43}, {25,45}, {17,40},  {25,35}, {25,37}, {52,37},
-  {52,10},{50,10},{55,2} };
-
-/****************************
- * void writeControlTitle() *
- ****************************/
-
-void 
-writeControlTitle(void)
-{
-
-  int strlength;
-
-  s = viewport->title;
-  strlength = strlen(s);
-  XClearArea(dsply,control->controlWindow,0,0,controlWidth,potA,False);
-  GSetForeground(anotherGC,(float)controlTitleColor,Xoption);
-  GDrawImageString(anotherGC,control->controlWindow,
-                  centerX(anotherGC,s,strlength,controlWidth),
-                  15,s,strlength,Xoption);
-
-} /* writeControlTitle() */
-
-void 
-makeMessageFromData(int whichGraph)
-{
-  if (viewport->haveControl) {
-    if ((graphStateArray[whichGraph].scaleX) > 99.0) {
-      strcpy(scaleXReport,"big");
-    } else {
-      sprintf(scaleXReport,"%4.1f",graphStateArray[whichGraph].scaleX);
-    }
-    if ((graphStateArray[whichGraph].scaleY) > 99.0) {
-      strcpy(scaleYReport,"big");
-    } else {
-      sprintf(scaleYReport,"%4.1f",graphStateArray[whichGraph].scaleY);
-    }
-    if ((graphStateArray[whichGraph].centerX) > 999.0) {
-      strcpy(deltaXReport,"+big");
-    } else if ((graphStateArray[whichGraph].centerX) < -999.0) {
-      strcpy(deltaXReport,"-big");
-    } else {
-      sprintf(deltaXReport,"%4.0f",
-             -graphStateArray[whichGraph].centerX /
-             graphArray[whichGraph].unitX);
-    }
-    if ((graphStateArray[whichGraph].centerY) > 999.0) {
-      strcpy(deltaYReport,"+big");
-    } else if ((graphStateArray[whichGraph].centerY) < -999.0) {
-      strcpy(deltaYReport,"-big");
-    } else {
-      sprintf(deltaYReport,"%4.0f",
-             -graphStateArray[whichGraph].centerY /
-             graphArray[whichGraph].unitY);
-    }
-    sprintf(viewport->controlPanel->message,"[%s,%s] >%d< [%s,%s]",
-           scaleXReport,scaleYReport,whichGraph+1,deltaXReport,deltaYReport);
-  }  /* if haveControl */
-
-} /* makeMessageFromData() */
-
-
-void 
-writeControlMessage(void)
-{
-  int               strlength;
-  controlPanelStruct *cp;
-  XWindowAttributes  cwInfo;
-
-  cp = viewport->controlPanel;
-  XGetWindowAttributes(dsply,cp->controlWindow,&cwInfo);
-  strlength = strlen(cp->message);
-
-
-
-  GDrawImageString(controlMessageGC,cp->controlWindow,
-                  centerX(globalGC1,cp->message,strlength,controlWidth),
-                  controlMessageY + globalFont->max_bounds.ascent - 2,
-                  cp->message,strlength,Xoption);
-}
-
-/*********************************/
-/***  void drawControlPanel()  ***/
-/*********************************/
-
-void 
-drawControlPanel(void)
-{
-
-  controlPanelStruct *cp;
-  int i,strlength;
-  char *s;
-
-  cp = viewport->controlPanel;
-  /* Draw border lines to separate the potentiometer, message, graph select
-     and button regions of the control panel. */
-  GSetForeground(trashGC,(float)foregroundColor,Xoption);
-  GSetLineAttributes(trashGC,3,LineSolid,CapButt,JoinMiter,Xoption);
-  GDrawLine(trashGC, cp->controlWindow, 0, potA, controlWidth, potA, Xoption);
-  GSetLineAttributes(trashGC,2,LineSolid,CapButt,JoinMiter,Xoption);
-  GDrawLine(trashGC, cp->controlWindow, 0, potB, controlWidth, potB, Xoption);
-  GDrawLine(trashGC, cp->controlWindow, 0, messageBot,
-           controlWidth, messageBot, Xoption);
-  GDrawLine(trashGC, cp->controlWindow, 0, 286, controlWidth, 286, Xoption);
-
-  /** put the line width as 1 last because used below as well **/
-  GSetLineAttributes(trashGC,1,LineSolid,CapButt,JoinMiter,Xoption);
-  GDrawRectangle(trashGC,cp->controlWindow,closeLeft,closeTop,
-                (controlWidth-closeLeft+8),(controlHeight-closeTop+8),Xoption);
-
-  /* Write potentiometer titles on the control panel. */
-  writeControlTitle();
-  GSetForeground(globGC,(float)controlPotHeaderColor,Xoption);
-  s = "Scale";
-  strlength = strlen(s);
-  GDrawString(globGC,cp->controlWindow,
-             centerX(globGC,s,strlength,
-                     cp->buttonQueue[scale2D].buttonWidth) +
-             cp->buttonQueue[scale2D].buttonX, 
31+headerHeight,s,strlength,Xoption);
-
-  s = "Translate";
-  strlength = strlen(s);
-  GDrawString(globGC,cp->controlWindow,
-             centerX(globGC,s,strlength,
-                     cp->buttonQueue[translate2D].buttonWidth) +
-             cp->buttonQueue[translate2D].buttonX,
-             31+headerHeight,s,strlen(s),Xoption);
-
-  GSetForeground(globGC,(float)controlColorColor,Xoption);
-
-  /* Write title of the graph selection window. */
-  s = "Graphs";
-  strlength = strlen(s);
-  GDrawString(globGC,cp->controlWindow,
-             centerX(globGC,s,strlength,controlWidth),graphHeaderHeight,
-             s,strlength,Xoption);
-
-  /* Write titles on regular buttons and draw pixmaps on potentiometers. */
-
-  for (i=0; i<(maxButtons2D); i++) {
-    if ((cp->buttonQueue[i]).pot) {
-
-      GSetForeground(globalGC1,(float)buttonColor,Xoption);
-      GDrawRectangle(globalGC1,cp->controlWindow,
-                    (cp->buttonQueue[i]).buttonX,
-                    (cp->buttonQueue[i]).buttonY,
-                    (cp->buttonQueue[i]).buttonWidth,
-                    (cp->buttonQueue[i]).buttonHeight,Xoption);
-
-      GSetForeground(trashGC,
-                    (float)monoColor((cp->buttonQueue[i]).textColor),Xoption);
-
-      GDrawLine(globalGC1,cp->controlWindow, /* trashGC, */
-               (cp->buttonQueue[i]).buttonX + (cp->buttonQueue[i]).xHalf,
-               (cp->buttonQueue[i]).buttonY,
-               (cp->buttonQueue[i]).buttonX + (cp->buttonQueue[i]).xHalf,
-               (cp->buttonQueue[i]).buttonY + 
2*(cp->buttonQueue[i]).yHalf,Xoption);
-      GDrawLine(globalGC1,cp->controlWindow, /* trashGC, */
-               (cp->buttonQueue[i]).buttonX,
-               (cp->buttonQueue[i]).buttonY + (cp->buttonQueue[i]).yHalf,
-               (cp->buttonQueue[i]).buttonX + 2*(cp->buttonQueue[i]).xHalf,
-               (cp->buttonQueue[i]).buttonY + 
(cp->buttonQueue[i]).yHalf,Xoption);
-      switch (i) {
-      case scale2D:
-       GDrawLines(trashGC,cp->controlWindow,scaleArrow,
-                  scaleArrowN,CoordModeOrigin,Xoption);
-       break;
-      case translate2D:
-       GDrawLines(trashGC,cp->controlWindow,translateArrow,
-                  translateArrowN,CoordModeOrigin,Xoption);
-       break;
-      } /* switch i */
-    } else if (cp->buttonQueue[i].graphNum) {
-
-      if (mono) {
-       if (graphStateArray[i-graphStart].showing) {
-         GSetForeground(graphGC,(float)backgroundColor,Xoption);
-         GSetBackground(graphGC,(float)foregroundColor,Xoption);
-       } else {
-         GSetForeground(graphGC,(float)foregroundColor,Xoption);
-         GSetBackground(graphGC,(float)backgroundColor,Xoption);
-       }
-       strlength = strlen((cp->buttonQueue[i]).text);
-       GDrawImageString(graphGC,cp->controlWindow,
-                        (cp->buttonQueue[i]).buttonX +
-                        centerX(graphGC,cp->buttonQueue[i].text,
-                                strlength,(cp->buttonQueue[i]).buttonWidth),
-                        (cp->buttonQueue[i]).buttonY +
-                        centerY(graphGC,(cp->buttonQueue[i]).buttonHeight),
-                        cp->buttonQueue[i].text,strlength,Xoption);
-      } else {
-       if (graphStateArray[i-graphStart].showing)
-         GSetForeground(graphGC,(float)graphBarShowingColor,Xoption);
-       else
-         GSetForeground(graphGC,(float)graphBarHiddenColor,Xoption);
-       strlength = strlen((cp->buttonQueue[i]).text);
-       GDrawString(graphGC,cp->controlWindow,
-                   (cp->buttonQueue[i]).buttonX +
-                   centerX(graphGC,cp->buttonQueue[i].text,
-                           strlength,(cp->buttonQueue[i]).buttonWidth),
-                   (cp->buttonQueue[i]).buttonY +
-                   centerY(graphGC,(cp->buttonQueue[i]).buttonHeight),
-                   cp->buttonQueue[i].text,strlength,Xoption);
-       }
-    } else if (cp->buttonQueue[i].graphSelect) {
-      /* The select characters are defined as: "^" for on and "-" for off. */
-      if (graphStateArray[i-graphSelectStart].selected) {
-       GSetForeground(graphGC,(float)graphBarSelectColor,Xoption);
-       strcpy((cp->buttonQueue[i]).text,"^");
-      } else {
-       GSetForeground(graphGC,(float)graphBarNotSelectColor,Xoption);
-       *(cp->buttonQueue[i]).text = '-';
-       strcpy((cp->buttonQueue[i]).text,"-");
-      }
-       GDrawString(graphGC,cp->controlWindow,
-                (cp->buttonQueue[i]).buttonX +
-                centerX(graphGC,cp->buttonQueue[i].text,
-                        strlength,(cp->buttonQueue[i]).buttonWidth),
-                (cp->buttonQueue[i]).buttonY +
-                centerY(graphGC,(cp->buttonQueue[i]).buttonHeight),
-                cp->buttonQueue[i].text,strlength,Xoption);
-    }
-    else {  /* a regular button */
-      int isOn = 1;
-
-      switch(i) {
-       case pointsOnOff:
-         isOn = pointsON = graphStateArray[0].pointsOn;
-         if (graphStateArray[0].pointsOn)
-           strcpy((cp->buttonQueue[i]).text,"Pts On ");
-         else
-           strcpy((cp->buttonQueue[i]).text,"Pts Off");
-         break;
-
-       case spline2D:
-         isOn = splineON = graphStateArray[0].splineOn;
-         if (graphStateArray[0].splineOn)
-           strcpy((cp->buttonQueue[i]).text, "Box On ");
-         else
-           strcpy((cp->buttonQueue[i]).text, "Box Off");
-         break;
-
-       case connectOnOff:
-         isOn = connectON = graphStateArray[0].connectOn;
-         if (graphStateArray[0].connectOn)
-           strcpy((cp->buttonQueue[i]).text, "Lines On ");
-         else
-           strcpy((cp->buttonQueue[i]).text, "Lines Off");
-         break;
-
-       case axesOnOff2D:
-         isOn = axesON = graphStateArray[0].axesOn;
-         if (graphStateArray[0].axesOn)
-           strcpy((cp->buttonQueue[i]).text , "Axes On ");
-         else
-           strcpy((cp->buttonQueue[i]).text , "Axes Off");
-         break;
-
-       case unitsOnOff2D:
-         isOn = unitsON = graphStateArray[0].unitsOn;
-         if (graphStateArray[0].unitsOn)
-          strcpy( (cp->buttonQueue[i]).text , "Units On ");
-         else
-          strcpy( (cp->buttonQueue[i]).text , "Units Off");
-         break;
-       case closeAll2D:
-         isOn = 0;
-
-       default:
-         break;
-      } /* switch i */
-
-      s = (cp->buttonQueue[i]).text;
-      strlength = strlen(s);
-
-      GDrawPushButton(dsply, globalGC1, trashGC, processGC, cp->controlWindow,
-         (cp->buttonQueue[i]).buttonX, (cp->buttonQueue[i]).buttonY,
-         (cp->buttonQueue[i]).buttonWidth, (cp->buttonQueue[i]).buttonHeight,
-         isOn, s,buttonColor,
-         monoColor((cp->buttonQueue[i]).textColor), Xoption);
-
-    } /* else a regular button */
-  } /* for each button */
-
-  /* Refresh the latest message */
-  makeMessageFromData(0);
-  writeControlMessage();
-  XFlush(dsply);
-
-}    /*** drawControlPanel ***/
-
-controlXY 
-getControlXY(int whereDoYouWantPanel)
-{
-  XWindowAttributes wAttr, wAttrib;
-  controlXY        cXY;
-  int              tmp=1;
-  Window           rootW, parentW, *childrenWs, tmpW;
-  unsigned int     nChildren;
-
-  tmpW = viewport->titleWindow;
-  while(tmp) {
-    XQueryTree(dsply,tmpW,&rootW,&parentW,&childrenWs,&nChildren);
-    XFree(childrenWs);
-    if (parentW == rtWindow) tmp = 0;
-    else tmpW = parentW;
-  }
-  XGetWindowAttributes(dsply,tmpW,&wAttrib);
-
-  XGetWindowAttributes(dsply,viewport->titleWindow,&wAttr);
-  if (whereDoYouWantPanel) {
-    switch (whereDoYouWantPanel) {
-    case 1: /* right */
-      cXY.putX = wAttrib.x + wAttrib.width;
-      cXY.putY = wAttrib.y;
-      break;
-    case 2: /* bottom */
-      cXY.putX = wAttrib.x + (wAttr.width - controlWidth)/2;  /* center it */
-      cXY.putY = wAttrib.y + wAttrib.height;
-      break;
-    case 3: /* left */
-      cXY.putX = wAttrib.x - controlWidth - borderWidth;
-      cXY.putY = wAttrib.y;
-      break;
-    case 4: /* top */
-      cXY.putX = wAttrib.x + (wAttr.width - controlWidth)/2;
-      cXY.putY = wAttrib.y - controlHeight - borderHeight;
-    }
-  } else {
-    if ((physicalWidth - (wAttrib.x + wAttr.width)) >= controlWidth) {
-      cXY.putX = wAttrib.x + wAttrib.width;
-      cXY.putY = wAttrib.y;
-    } else if ((physicalHeight - (wAttrib.y + wAttr.height)) >=
-              controlHeight) {
-      cXY.putX = wAttrib.x + (wAttr.width - controlWidth)/2;
-      cXY.putY = wAttrib.y + wAttrib.height;
-    } else if (wAttrib.x >= controlWidth) {
-      cXY.putX = wAttrib.x - controlWidth - borderWidth;
-      cXY.putY = wAttrib.y;
-    } else if (wAttrib.y >= controlHeight) {
-      cXY.putX = wAttrib.x + (wAttr.width - controlWidth)/2;
-      cXY.putY = wAttrib.y - controlHeight - borderHeight;
-    } else {                      /* put inside of viewport */
-      cXY.putX = wAttrib.x + wAttr.width - controlWidth;
-      cXY.putY = wAttrib.y + wAttr.height - controlHeight;
-    }
-  }
-  return(cXY);
-
-}
-
-/************************************************/
-/***  controlPanelStruct *makeControlPanel()  ***/
-/************************************************/
-
-controlPanelStruct *
-makeControlPanel(void)
-{
-
-  Window cw;
-  int                 i,num;
-  controlPanelStruct   *control;
-  buttonStruct        *buttons;
-  controlXY           cXY;
-  XSetWindowAttributes cwAttrib, controlAttrib;
-  XSizeHints          sizehints;
-  Pixmap              mousebits,mousemask;
-  XColor              foreColor, backColor;
-
-  if (!(control = (controlPanelStruct *)malloc(sizeof(controlPanelStruct)))) {
-    fprintf(stderr,"Ran out of memory trying to create a control panel.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-
-  cXY = getControlXY(0);
-
-  /* Define and assign a mouse cursor. */
-  mousebits = XCreateBitmapFromData(dsply,rtWindow,mouseBitmap_bits,
-                                   mouseBitmap_width,mouseBitmap_height);
-  mousemask = XCreateBitmapFromData(dsply,rtWindow,mouseMask_bits,
-                                   mouseMask_width,mouseMask_height);
-  cwAttrib.background_pixel = backgroundColor; /* controlBackground; */
-  cwAttrib.border_pixel = foregroundColor;
-  cwAttrib.backing_store = WhenMapped;
-  cwAttrib.event_mask = controlMASK;
-  cwAttrib.colormap = colorMap;
-  cwAttrib.override_redirect = overrideManager;
-  foreColor.pixel = controlCursorForeground;
-  XQueryColor(dsply,colorMap,&foreColor);
-  backColor.pixel = controlCursorBackground;
-  XQueryColor(dsply,colorMap,&backColor);
-  cwAttrib.cursor = XCreatePixmapCursor(dsply,mousebits,mousemask,
-                                       &foreColor,&backColor,
-                                       mouseBitmap_x_hot,mouseBitmap_y_hot);
-
-  cw = XCreateWindow(dsply,rtWindow,
-                    cXY.putX,cXY.putY,controlWidth,controlHeight,3,
-                    CopyFromParent,InputOutput,CopyFromParent,
-                    controlCreateMASK,&cwAttrib);
-
-  sizehints.flags  = PPosition | PSize;
-  sizehints.x     = cXY.putX;
-  sizehints.y     = cXY.putY;
-  sizehints.width  = controlWidth;
-  sizehints.height = controlHeight;
-
-  /*** the None stands for icon pixmap...change.... ***/
-
-  XSetNormalHints(dsply,cw,&sizehints);
-  XSetStandardProperties(dsply,cw,"2D Control Panel","2D Control Panel",
-                        None,NULL,0,&sizehints);
-
-  control->controlWindow = cw;
-  num = initButtons(control->buttonQueue);
-  control->numOfButtons = num;
-  buttons = control->buttonQueue;
-
-  for (i=0; i<num; i++) {
-    controlAttrib.event_mask = (control->buttonQueue[i]).mask;
-    (control->buttonQueue[i]).self = XCreateWindow(dsply,cw,
-                                      (control->buttonQueue[i]).buttonX,
-                                      (control->buttonQueue[i]).buttonY,
-                                      (control->buttonQueue[i]).buttonWidth,
-                                      (control->buttonQueue[i]).buttonHeight,
-                                      0,0,InputOnly,CopyFromParent,
-                                      buttonCreateMASK,&controlAttrib);
-
-    XMakeAssoc(dsply,table,(control->buttonQueue[i]).self,
-              &((control->buttonQueue[i]).buttonKey));
-   /* Use buttonKey instead of i because buttonKey has a permanent address */
-    XMapWindow(dsply,(control->buttonQueue[i]).self);
-  }
-
-          /* Create message window */
-  control->messageWindow = XCreateWindow(dsply,cw,0,controlMessageY,
-                                        controlWidth,controlMessageHeight,
-                                        0,0,InputOnly,CopyFromParent,
-                                        messageCreateMASK,&cwAttrib);
-  XMapWindow(dsply,control->messageWindow);
-
-  for (i=0; i<scaleArrowN; i++) {
-    scaleArrow[i].x += buttons[scale2D].buttonX;
-    scaleArrow[i].y += buttons[scale2D].buttonY;
-  }
-  for (i=0; i<translateArrowN; i++) {
-    translateArrow[i].x += buttons[translate2D].buttonX;
-    translateArrow[i].y += buttons[translate2D].buttonY;
-  }
-
-  viewport->justMadeControl = yes;
-  return(control);
-
-} /* makeControlPanel() */
-
-
-
-
-
-
-/*****************************************/
-/***  void putControlPanelSomewhere()  ***/
-/*****************************************/
-
-/* This routine puts up the control panel associated with the viewport
-   passed in.  It first tries to put it to the right of the viewport. If
-   there isn't enough room there, it tries the bottom and so on going
-   clockwise. If the viewport is too big and there is no room to put the
-   control panel outside of it, it placed the control panel in the bottom
-   right hand corner of the viewport window. */
-
-void 
-putControlPanelSomewhere(int whereDoesPanelGo)
-{
-  controlPanelStruct *control;
-  controlXY         whereControl;
-
-  control = viewport->controlPanel;
-  whereControl = getControlXY(whereDoesPanelGo);
-
-  viewport->haveControl = yes;
-
-  XRaiseWindow(dsply,control->controlWindow);
-  XMoveWindow(dsply,control->controlWindow,whereControl.putX,
-             whereControl.putY);
-
-  drawControlPanel();
-  if (viewport->justMadeControl) {
-    XMapWindow(dsply,control->controlWindow);
-    viewport->justMadeControl = no;
-  }
-  XMapWindow(dsply,control->controlWindow);
-}
-
-
-
-
-
-/************************************/
-/***  void clearControlMessage()  ***/
-/************************************/
-
-void 
-clearControlMessage(void)
-{
-
-  strcpy(viewport->controlPanel->message,"");
-  
-  XClearArea(dsply,viewport->controlPanel->controlWindow,
-            0,controlMessageY-2,controlWidth,controlMessageHeight,False);
-}
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/globals2.h b/src/graph/view2d/globals2.h
deleted file mode 100755
index de0d132..0000000
--- a/src/graph/view2d/globals2.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-extern int           scrn;
-extern Display       *dsply;
-extern XFontStruct   *globalFont,*buttonFont,*headerFont,*titleFont,
-                     *graphFont,*unitFont,*serverFont;
-extern XrmDatabase      rDB;
-
-extern char          scaleXReport[5],scaleYReport[5],deltaXReport[5],
-                     deltaYReport[5];
-extern unsigned long *spadColors;
-extern int           followMouse,viewportKeyNum;
-extern Window        rtWindow,viewman;
-extern GC            globalGC1,globalGC2,anotherGC,globGC,trashGC,
-                     controlMessageGC,graphGC,unitGC;
-extern HashTable     *table;
-extern Colormap      colorMap;
-extern int           Socket,ack;
-
-extern  GC  processGC;
-extern  viewPoints *viewport;
-extern  controlPanelStruct *control;
-extern  XGCValues gcVals;
-extern  char *s;
-extern  int someInt;
-
-extern unsigned long foregroundColor, backgroundColor; 
-
-extern int drawMore;
-extern int spadMode,spadDraw;
-extern jmp_buf jumpFlag;
-
-extern graphStruct graphArray[maxGraphs]; 
-extern graphStateStruct graphStateArray[maxGraphs],
-                        graphStateBackupArray[maxGraphs];
-extern xPointStruct xPointsArray[maxGraphs];
-
-extern int pointsON, connectON, splineON, axesON, unitsON, zoomXON, zoomYON;
-extern int transXON, transYON;
-
-extern char errorStr[80];
-
-extern int currentGraph; 
-extern int queriedGraph;
-extern int picking,dropping;
-
-extern char filename[256];
-
-extern char *xDefault;
-
-extern int viewAloned;
-
-extern int mono, totalColors,
-           totalHues, totalSolidShades, totalDitheredAndSolids,totalShades;
-
-extern float aspectR;
-
-extern Atom wm_delete_window;
diff --git a/src/graph/view2d/graph2d.c.pamphlet 
b/src/graph/view2d/graph2d.c.pamphlet
deleted file mode 100644
index 3b15acb..0000000
--- a/src/graph/view2d/graph2d.c.pamphlet
+++ /dev/null
@@ -1,177 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d graph2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _GRAPH2D_C
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-#include "header2.h"
-
-#include "all-2d.h1"
-#include "util.h1"
-
-
-void 
-getGraphFromViewman(int i)
-{
- /** This routine should be called right after a read of the graph key 
-     was made from the viewport manager (or defined in some other way). **/
-
-  int j,k,xPointsNeeded;
-  pointListStruct *llPtr;
-  pointStruct     *p;
-
-  readViewman(&(graphArray[i].xmin),floatSize);
-  readViewman(&(graphArray[i].xmax),floatSize);
-  readViewman(&(graphArray[i].ymin),floatSize);
-  readViewman(&(graphArray[i].ymax),floatSize);
-  readViewman(&(graphArray[i].xNorm),floatSize);
-  readViewman(&(graphArray[i].yNorm),floatSize);
-  readViewman(&(graphArray[i].spadUnitX),floatSize);
-  readViewman(&(graphArray[i].spadUnitY),floatSize);
-  readViewman(&(graphArray[i].unitX),floatSize);
-  readViewman(&(graphArray[i].unitY),floatSize);
-  readViewman(&(graphArray[i].originX),floatSize);
-  readViewman(&(graphArray[i].originY),floatSize);
-  readViewman(&(graphArray[i].numberOfLists),intSize);
-  
-  if (!(llPtr = (pointListStruct *)malloc(graphArray[i].numberOfLists * 
sizeof(pointListStruct)))) {
-    fprintf(stderr,"VIEW2D: Fatal Error>> Ran out of memory trying to receive 
a graph.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  graphArray[i].listOfListsOfPoints = llPtr;
-  
-  xPointsNeeded = 0;
-  for (j=0; j<graphArray[i].numberOfLists; j++) {
-    readViewman(&(llPtr->numberOfPoints),intSize);
-    if (!(p = (pointStruct *)malloc(llPtr->numberOfPoints * 
sizeof(pointStruct)))) {
-      fprintf(stderr,"VIEW2D: (pointStruct) ran out of memory trying to create 
a new graph.\n");
-      exitWithAck(RootWindow(dsply,scrn),Window,-1);
-    }
-    llPtr->listOfPoints = p;             /** point to current point list **/
-    for (k=0; k<llPtr->numberOfPoints; k++) {
-      readViewman(&(p->x),floatSize);
-      readViewman(&(p->y),floatSize);
-      readViewman(&(p->hue),floatSize);
-      readViewman(&(p->shade),floatSize);
-      p++;
-    }   /* for k in list of points */
-    readViewman(&(llPtr->pointColor),intSize);
-    readViewman(&(llPtr->lineColor),intSize);
-    readViewman(&(llPtr->pointSize),intSize);
-    
-    xPointsNeeded += llPtr->numberOfPoints;
-    llPtr++;
-  }   /* for j in list of lists of points */
-  
-  /* read in graph state for the existing graph (override default values) */
-  readViewman(&(graphStateArray[i].scaleX),floatSize);
-  readViewman(&(graphStateArray[i].scaleY),floatSize);
-  readViewman(&(graphStateArray[i].deltaX),floatSize);
-  readViewman(&(graphStateArray[i].deltaY),floatSize);
-  readViewman(&(graphStateArray[i].pointsOn),intSize);
-  readViewman(&(graphStateArray[i].connectOn),intSize);
-  readViewman(&(graphStateArray[i].splineOn),intSize);
-  readViewman(&(graphStateArray[i].axesOn),intSize);
-  readViewman(&(graphStateArray[i].axesColor),intSize);
-  readViewman(&(graphStateArray[i].unitsOn),intSize);
-  readViewman(&(graphStateArray[i].unitsColor),intSize);
-  readViewman(&(graphStateArray[i].showing),intSize);
-  graphStateArray[i].selected = yes;
-  graphStateBackupArray[i] = graphStateArray[i];
-
-  graphStateArray[i].deltaX = graphStateArray[0].deltaX;
-  graphStateArray[i].deltaY = graphStateArray[0].deltaY;
-  graphStateArray[i].scaleX = graphStateArray[0].scaleX;
-  graphStateArray[i].scaleY = graphStateArray[0].scaleY;
-
-  /* allocate memory for xPoints (used in drawViewport) */
-  if (!(xPointsArray[i].xPoint = (XPoint *)malloc(xPointsNeeded * 
sizeof(XPoint)))) {
-    fprintf(stderr,"VIEW2D: (XPoint) Ran out of memory (malloc) trying to 
create a new graph.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  if (!(xPointsArray[i].x10Point = (Vertex *)malloc(xPointsNeeded * 
sizeof(Vertex)))) {
-    fprintf(stderr,
-            "VIEW2D: (X10Point) Ran out of memory (malloc) trying to create a 
new graph.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  if (!(xPointsArray[i].arc = (XArc *)malloc(xPointsNeeded * sizeof(XArc)))) {
-    fprintf(stderr,"VIEW2D: (XArc) Ran out of memory (malloc) trying to create 
a new graph.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-
-}   /* getGraphFromViewman */
-
-
-
-void 
-freeGraph(int i)
-{
-  int j;
-  pointListStruct *llPtr;
-
-  if (graphArray[i].key) {
-    graphArray[i].key = 0;   /* 0 means no graph */
-    for (j=0,llPtr=graphArray[i].listOfListsOfPoints; 
-        j<graphArray[i].numberOfLists; j++,llPtr++) 
-      free(llPtr->listOfPoints);
-    free(llPtr);
-    free(xPointsArray[i].xPoint);
-  } else {
-  }
-
-}
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/header2.h b/src/graph/view2d/header2.h
deleted file mode 100755
index 18e3040..0000000
--- a/src/graph/view2d/header2.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <X11/Xlib.h>
-#include <X11/Xresource.h>
-#include <setjmp.h>
-
-/* for xdefs */
-#define view2d 
-
-#include "hash.h"
-#include "nox10.h"
-#include "view.h"
-#include "view2d.h"
-#include "actions.h"
-#include "viewcommand.h"
-#include "xdefs.h"
-#include "override.h"
-#include "g.h"       /* Gdraw functions header file */
-
-
-
-#define carefullySetFont(gc,font) if (font != serverFont) 
XSetFont(dsply,gc,font->fid)
-
-#define controlMASK (ButtonPressMask + ExposureMask)
-#define potMASK     (ButtonPressMask + ButtonReleaseMask + ButtonMotionMask + 
LeaveWindowMask)
-#define buttonMASK  (ButtonPressMask + ButtonReleaseMask + LeaveWindowMask)
-#define colorMASK   (ButtonPressMask + ButtonReleaseMask + LeaveWindowMask)
-
-/* make mouse grab for stationery mouse on a potentiometer slower */
-#define mouseWait 50 
-
-#define controlCreateMASK (CWBackPixel | CWBorderPixel | CWEventMask | 
CWCursor |CWColormap | CWOverrideRedirect)
-#define buttonCreateMASK    CWEventMask  
-#define messageCreateMASK   0
-#define colormapCreateMASK  CWEventMask
-
-#define controlWidth  236
-#define controlHeight 400
-
-#define closeLeft cp->buttonQueue[closeAll2D].buttonX - 5
-#define closeTop  cp->buttonQueue[closeAll2D].buttonY - 5
-
-#define controlBackground WhitePixel(dsply,scrn)
-#define controlCursorForeground monoColor(4)
-#define controlCursorBackground monoColor(44)
-#define controlTitleColor       monoColor(36)
-#define controlPotHeaderColor   monoColor(52)
-#define controlColorColor       monoColor(13)
-#define controlColorSignColor   monoColor(22)
-
-#define controlMessageHeight globalFont->max_bounds.ascent + 
globalFont->max_bounds.descent+4
-#define messageBot controlMessageY + controlMessageHeight
-
-#define headerHeight headerFont->max_bounds.ascent
-#define graphHeaderHeight messageBot + headerHeight
-
-#define graphBarTop    graphHeaderHeight + 12
-#define graphBarLeft   66
-#define graphBarWidth  graphFont->max_bounds.width
-#define graphBarHeight graphFont->max_bounds.ascent + 
graphFont->max_bounds.descent
-
-#define colormapX 10
-#define colormapY 235
-#define colormapW 280
-#define colormapH 60
-
-#define colorWidth   8
-#define colorHeight  12
-  
-#define colorOffset  3
-#define colorOffsetX 24
-#define colorOffsetY 20
-#define colorPointer 18
-
-#define buttonColor monoColor(105) 
-
-#define graphBarDefaultColor    monoColor(15)
-#define graphBarShowingColor    monoColor(15)
-#define graphBarHiddenColor     monoColor(138)
-#define graphBarSelectColor     monoColor(15)
-#define graphBarNotSelectColor  monoColor(138)
-
-#define viewportCreateMASK 
(CWBackPixel|CWBorderPixel|CWEventMask|CWCursor|CWColormap)
-#define viewportTitleCreateMASK 
(CWBackPixel|CWBorderPixel|CWCursor|CWColormap|CWEventMask|CWOverrideRedirect)
-
-#define viewportMASK (KeyPressMask + ButtonPressMask + ExposureMask)
-#define titleMASK    ExposureMask
-
-#define lineWidth  1
-#define lineHeight 1
-
-#define titleColor     monoColor(36)
-#define titleHeight    24
-#define appendixHeight 0
-
-#define viewWidth  400
-#define viewHeight 400
-
-#define viewBorderWidth 0
-#define borderWidth     22
-#define borderHeight   45
-
-#define initDeltaX 0.0
-#define initDeltaY 0.0
-#define initScale  1.3
-
-#define minScale  0.01
-#define maxScale  1000.0
-#define maxDelta  1000.0
-
-#define scaleFactor     0.5
-#define translateFactor 10
-
-#define viewCursorForeground monoColor(166)
-#define viewCursorBackground monoColor(5)
-
-#define axisLength 100.0    
-
-#define axesColorDefault  35
-#define labelColor 22
-
-#define meshOutline      monoColor(132)
-#define opaqueOutline    monoColor(53)
-#define opaqueForeground monoColor(236)
-
-#define drawWireFrame 0
-#define drawOpaque    1
-#define drawRendered  2
-
-
-#define numOfColors 240
-
-#define totalHuesConst   27
-#define totalShadesConst 8
-#define hueEnd 360
-#define hueStep hueEnd/totalHuesConst
-
-#define numPlanes 1
-#define numColors 10
-#define startColor 0
-#define endColor   startColor+numColors
-#define maxColors DisplayCells(dsply,scrn)-1
-
-#define colorStep (maxColors+1)/numColors
-
-
-#define physicalWidth  DisplayWidth(dsply,scrn)
-#define physicalHeight DisplayHeight(dsply,scrn)
-#define deep           DisplayPlanes(dsply,scrn)
-
-#define basicScreen 19
-
-#define yes 1
-#define no  0
-
-#define potA  25   /* line dividing potentiometers from stuff above it */
-#define potB 173   /* line dividing potentiometers from title */
-#define butA 260   /* line dividing buttons from stuff above it */
-
-#define controlMessageY     181
-#define controlMessageColor monoColor(29)
-
-#define pi_half         1.570796326794896619231321691639751442099
-#define pi              3.141592653589793238462643383279502884197
-#define three_pi_halves 4.712388980384689857693965074919254326296
-#define two_pi          6.283185307179586476925286766559005768394
-
-#define degrees_in_two_pi 57
-#define d2Pi 57
-
-#define viewBackground 0
-
-#define nbuckets         128
-
-#define anywhere 0
-
-
-#define intSize sizeof(int)
-#define floatSize sizeof(float)
-
-/* type is X, PS,... */
-
-#define drawViewport(type) drawTheViewport(type);
-#define spadDrawViewport() spadMode++; drawTheViewport(X); spadMode--;
-
-
-typedef struct _buttonStruct {
-  int buttonKey, pot, mask, graphNum, graphSelect;
-  short buttonX,buttonY,buttonWidth,buttonHeight,xHalf,yHalf;
-  Window self;
-  char text[40];
-  int textColor, textHue, textShade;
-} buttonStruct;
-
-typedef struct _controlPanelStruct {
-  int                  numOfButtons;
-  Window               controlWindow,messageWindow,colormapWindow;
-  char                 message[40];
-  struct _buttonStruct buttonQueue[maxButtons2D];
-} controlPanelStruct;
-
-typedef struct _mouseCoord {
-    float x,y;
-} mouseCoord;
-
-typedef struct _viewPoints {
-  int                 viewportKey;
-  char                title[80];
-  Window              viewWindow,titleWindow;
-  controlPanelStruct  *controlPanel;
-  int                 justMadeControl,haveControl,
-                      axesOn,unitsOn,pointsOn,linesOn,splineOn,closing,
-                      allowDraw;
-  struct _viewPoints  *prevViewport,*nextViewport;
-} viewPoints;
-
-
-typedef struct _controlXY {
-  int putX,putY;
-} controlXY;
-
-
-typedef struct _xPointStruct {
-  XPoint *xPoint;
-  Vertex *x10Point;
-  XArc   *arc;
-} xPointStruct;
-
-
-
-#define calcUnitX(ii) (vwInfo.width * \
-                      ((graphArray[0].unitX * ii + \
-                       graphArray[0].originX - graphStateArray[0].centerX) *\
-                       graphStateArray[0].scaleX + 0.5))
-#define calcUnitY(ii) (vwInfo.height * aspectR * \
-                      (1 - ((graphArray[0].unitY*aspectR * ii + \
-                             graphArray[0].originY*aspectR - \
-                             graphStateArray[0].centerY) * \
-                            graphStateArray[0].scaleY + 0.5*aspectR )))
-
-#define projX(x,w,i) ((((float)x/w-0.5)/graphStateArray[i].scaleX + \
-                      graphStateArray[i].centerX + 0.5) /      \
-                     graphArray[i].xNorm + graphArray[i].xmin)
-
-#define projY(y,h,i) (((0.5-(float)y/h*aspectR)/graphStateArray[i].scaleY + \
-                      graphStateArray[i].centerY + 0.5) /      \
-                     graphArray[i].yNorm + graphArray[i].ymin)
-
-#define isNaN(v) (v != v)
-
-#include "globals2.h"
-
diff --git a/src/graph/view2d/main2d.c.pamphlet 
b/src/graph/view2d/main2d.c.pamphlet
deleted file mode 100644
index c4ac10c..0000000
--- a/src/graph/view2d/main2d.c.pamphlet
+++ /dev/null
@@ -1,514 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d main2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _MAIN2D_C
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <signal.h>
-
-#include "header2.h"
-#include "bsdsignal.h"
-#include "globals2.h"
-#include "bsdsignal.h1"
-#include "all-2d.h1"
-#include "gfun.h1"
-#include "util.h1"
-#include "xspadfill.h1"
-
-
-/**********************/
-/** global variables **/
-/**********************/
-Window        rtWindow,viewman;
-Display       *dsply;
-XFontStruct   *globalFont,
-  *buttonFont,
-  *headerFont,
-  *titleFont,
-  *graphFont,
-  *unitFont,
-  *serverFont;
-GC            globalGC1,
-  globalGC2,
-  anotherGC,
-  globGC,
-  trashGC,
-  controlMessageGC,
-  graphGC,
-  unitGC,
-  processGC;
-XGCValues     gcVals;
-HashTable     *table;
-Colormap      colorMap;
-
-XrmDatabase rDB; /* Resource database */
-
-
-char          scaleXReport[5],
-  scaleYReport[5],
-  deltaXReport[5],
-  deltaYReport[5],
-  *s,
-  errorStr[80],
-  filename[256], /** For writing viewport data out to a file **/
-  *xDefault;     /** used for accessing .XDefaults **/
-
-
-unsigned long *spadColors;
-unsigned long foregroundColor, backgroundColor;  
-
-int           followMouse = no, 
-  viewportKeyNum = 0, 
-  scrn, 
-  Socket = 1,
-  ack = 1,
-  someInt,
-  drawMore,
-  spadMode=no, /* yes if receiving AXIOM command and calling drawViewport */
-  spadDraw=no, /* yes if drawing viewport because of a AXIOM command */
-  pointsON  = yes,  /* these would affect the choices in buttons.c */
-  connectON = yes,
-  splineON  = no,
-  axesON    = yes,
-  unitsON   = no,
-  zoomXON   = yes,
-  zoomYON   = yes,
-  transXON  = yes,
-  transYON  = yes,
-  currentGraph = 0,  /* last graph selected */
-  queriedGraph = 0,  /* current graph queried */
-  picking=0,
-  dropping=0,
-  viewAloned,  /** if not connected to AXIOM **/
-  mono, 
-  totalColors, 
-  totalSolid, 
-  totalDithered, 
-  maxGreyShade,
-  totalHues, 
-  totalSolidShades, 
-  totalDitheredAndSolids,
-  totalShades;
-/* totalShades is initially set to totalShadesConst (probably 8).
-   If X cannot allocate 8 shades for each hue, totalShades is 
-   decremented. There is currently only a check for this value
-   to be positive. ---> something to add: change over to monochrome
-   if totalShades=0. Just modify the spadcolors.c file. 
-   spadcolors.c has been modified so that it returns the value for
-   totalShades. Since the return value had previously been unused,
-   a modification in this way ensures continued support of other
-   routines calling this function (e.g. hyperDoc stuff). */
-
-viewPoints    *viewport;
-controlPanelStruct *control;
-jmp_buf jumpFlag;
-graphStruct      graphArray[maxGraphs];
-graphStateStruct graphStateArray[maxGraphs],
-  graphStateBackupArray[maxGraphs];
-xPointStruct     xPointsArray[maxGraphs];
-float aspectR = 1.0;
-/* global ps variables */
-int     psInit=no;      /* need to call globalInitPs() each run */
-GCptr   GChead=NULL;    /* ptr to head of ps GC linked list */
-char    *PSfilename,    /* output file name used in user directory */
-  *envAXIOM;    /* used as ps file pathnames */
-
-int
-main(void) 
-{
-
-  XGCValues       controlGCVals;
-  int             i,code;
-  view2DStruct    viewData;
-  
-  char property[256];
-  char *prop = &property[0];
-  char *str_type[20];
-  XrmValue value;
-
-
-  /**** Set up display ****/
-  if ((dsply = XOpenDisplay(getenv("DISPLAY"))) == NULL)
-    fprintf(stderr,"Could not open the display.\n");
-  scrn  = DefaultScreen(dsply);
-  rtWindow  = RootWindow(dsply,scrn);
-  
-  /**** link Xwindows to viewports - X10 feature ****/
-  table        = XCreateAssocTable(nbuckets);  
-  
-  /**** Create AXIOM color map ****/
-  totalColors = XInitSpadFill(dsply,scrn,&colorMap,
-                              &totalHues,&totalSolidShades,
-                              &totalDitheredAndSolids,&totalShades);
-  
-  if (totalColors < 0) {
-    fprintf(stderr,">>Error: Could not allocate all the necessary colors.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  
-  mergeDatabases();
-  
-  
-  /*** Determine whether monochrome or color is used ***/
-  if (XrmGetResource(rDB,"Axiom.2D.monochrome","",str_type,&value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop, "off");
-  
-  mono = ((totalSolid == 2) || (strcmp(prop,"on") == 0));
-  
-  if (XrmGetResource(rDB,"Axiom.2D.inverse","",str_type,&value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop, "off");
-  
-  if (mono) 
-    if (strcmp(prop,"on") == 0) {            /* 0 if equal (inverse video) */
-      foregroundColor = WhitePixel(dsply,scrn);
-      backgroundColor = BlackPixel(dsply,scrn);
-    } else {                                 /* off (no inverse video) */
-      foregroundColor = BlackPixel(dsply,scrn);
-      backgroundColor = WhitePixel(dsply,scrn);
-    }
-  else   /* inverse of inverse in color (for some strange reason) */
-    if (strcmp(prop,"on") == 0) {         /* 0 if equal (inverse video) */
-      foregroundColor = WhitePixel(dsply,scrn);
-      backgroundColor = BlackPixel(dsply,scrn);
-    } else {                                  /* off (no inverse video) */
-      foregroundColor = BlackPixel(dsply,scrn);
-      backgroundColor = WhitePixel(dsply,scrn);
-    }
-  
-  
-  /* read default file name for postScript output */
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.postscriptFile",
-                    "",
-                    str_type, &value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop, "axiom2d.ps");
-     
-  PSfilename = (char *)malloc(strlen(prop)+1);
-  strcpy(PSfilename,prop);
-  
-  
-  
-  /**** Open global fonts ****/
-  serverFont = XQueryFont(dsply,XGContextFromGC(DefaultGC(dsply,scrn)));
-
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.messageFont",
-                    "Axiom.2D.Font",
-                    str_type, &value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else      
-    (void) strcpy(prop,messageFontDefault);  
-  if ((globalFont = XLoadQueryFont(dsply, prop)) == NULL) {
-    fprintf(stderr, 
-           "Warning:  could not get the %s font for messageFont\n",prop);
-    globalFont = serverFont;
-  }
-  
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.buttonFont",
-                    "Axiom.2D.Font",
-                    str_type, &value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop,buttonFontDefault);
-  if ((buttonFont = XLoadQueryFont(dsply, prop)) == NULL) {
-    fprintf(stderr, 
-           "Warning:  could not get the %s font for buttonFont\n",prop);
-    buttonFont = serverFont;
-  }
-  
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.headerFont",
-                    "Axiom.2D.Font",
-                    str_type, &value) == True)
-     (void) strncpy(prop,value.addr,(int)value.size);
-  else
-    (void) strcpy(prop,headerFontDefault);
-  
-  if ((headerFont = XLoadQueryFont(dsply, prop)) == NULL) {
-    fprintf(stderr, 
-           "Warning:  could not get the %s font for headerFont\n",prop);
-    headerFont = serverFont;
-  }
-
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.titleFont",
-                    "Axiom.2D.Font",
-                    str_type,&value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop,titleFontDefault);
-  
-  if ((titleFont = XLoadQueryFont(dsply, prop)) == NULL) {
-    fprintf(stderr, 
-           "Warning:  could not get the %s font for titleFont\n",prop);
-    titleFont = serverFont;
-  }
-  
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.graphFont",
-                    "Axiom.2D.Font",
-                    str_type,&value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop,graphFontDefault);
-  
-  if ((graphFont = XLoadQueryFont(dsply, prop)) == NULL) {
-    fprintf(stderr, 
-           "Warning:  could not get the %s font for graphFont\n",prop);
-    graphFont = serverFont;
-  }
-  
-  if (XrmGetResource(rDB,
-                    "Axiom.2D.unitFont",
-                    "Axiom.2D.Font",
-                    str_type,&value) == True)
-    (void) strncpy(prop,value.addr,(int)value.size);
-  else 
-    (void) strcpy(prop,unitFontDefault);
-  
-  if ((unitFont = XLoadQueryFont(dsply, prop)) == NULL) {
-     fprintf(stderr, 
-            "Warning:  could not get the %s font for unitFont\n",prop);
-     unitFont = serverFont;
-  }
-
-
-  /**** Create widely used Graphic Contexts ****/
-  PSGlobalInit();       
-  /* must initiate before using any G/PS functions 
-     need character name: used as postscript GC variable 
-     need to create ps GCs for all GCs used by drawings in viewWindow */
-
-  /* globalGC1 */
-
-  controlGCVals.foreground = monoColor(axesColorDefault);
-  controlGCVals.background = backgroundColor;
-  globalGC1 = XCreateGC(dsply,rtWindow,GCForeground | GCBackground ,
-                       &controlGCVals);  
-  carefullySetFont(globalGC1,globalFont);
-  
-  
-  /* create the equivalent GCs for ps */
-  PSCreateContext(globalGC1, "globalGC1", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* controlMessageGC */
-
-  controlGCVals.foreground = controlMessageColor;
-  controlMessageGC = XCreateGC(dsply,rtWindow,GCForeground | GCBackground 
-                              ,&controlGCVals);
-  carefullySetFont(controlMessageGC,globalFont);
-  
-  /* globalGC2 */
-
-  controlGCVals.foreground = monoColor(labelColor);
-  controlGCVals.background = backgroundColor;
-  globalGC2 = XCreateGC(dsply,rtWindow,GCForeground | GCBackground,
-                       &controlGCVals);
-  carefullySetFont(globalGC2,buttonFont);
-  PSCreateContext(globalGC2, "globalGC2", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* trashGC  */
-  
-  trashGC = XCreateGC(dsply,rtWindow,0,&controlGCVals);
-  carefullySetFont(trashGC,buttonFont);
-  PSCreateContext(trashGC, "trashGC", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* globGC */
-  
-  globGC = XCreateGC(dsply,rtWindow,0,&controlGCVals);
-  carefullySetFont(globGC,headerFont);
-  PSCreateContext(globGC, "globGC", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* anotherGC  */
-  
-  controlGCVals.line_width = colorWidth;
-  anotherGC  = XCreateGC(dsply,rtWindow,GCBackground,&controlGCVals);
-  carefullySetFont(anotherGC,titleFont);
-  PSCreateContext(anotherGC, "anotherGC", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* processGC */
-  
-  gcVals.background = backgroundColor;
-  processGC         = XCreateGC(dsply,rtWindow,GCBackground ,&gcVals);
-  carefullySetFont(processGC,buttonFont);
-  
-  /* graphGC */
-  
-  graphGC           = XCreateGC(dsply,rtWindow,GCBackground,&gcVals);
-  carefullySetFont(graphGC,graphFont);
-  PSCreateContext(graphGC, "graphGC", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /* unitGC */
-  
-  unitGC            = XCreateGC(dsply,rtWindow,GCBackground ,&gcVals);
-  carefullySetFont(unitGC,unitFont);
-  PSCreateContext(unitGC, "unitGC", psNormalWidth, psButtCap,
-                 psMiterJoin, psWhite, psBlack);
-  
-  /**** Initialize Graph States ****/
-  
-  for (i=0; i<maxGraphs; i++) {
-    graphStateArray[i].scaleX = 0.9;
-    graphStateArray[i].scaleY = 0.9;
-    graphStateArray[i].deltaX = 0.0;
-    graphStateArray[i].deltaY = 0.0;
-    graphStateArray[i].centerX = 0.0;
-    graphStateArray[i].centerY = 0.0;
-    graphStateArray[i].pointsOn  = yes;
-    graphStateArray[i].connectOn = yes;
-    graphStateArray[i].splineOn  = no;
-    graphStateArray[i].axesOn    = yes;
-    graphStateArray[i].unitsOn   = no;
-    graphStateArray[i].showing   = no;
-    graphStateArray[i].selected  = no;
-    graphStateBackupArray[i] = graphStateArray[i];
-  } 
-  
-  /**** Get Data from the Viewport Manager ****/
-  
-  i = 123;
-  code=check(write(Socket,&i,intSize));
-  
-  /* Check if I am getting stuff from AXIOM or, if I am viewAlone. */
-  readViewman(&viewAloned,intSize);
-  readViewman(&viewData,sizeof(view2DStruct));
-  readViewman(&i,intSize);
-  
-  if (!(viewData.title = (char *)malloc(i))) {
-    fprintf(stderr,
-           "ERROR: Ran out of memory trying to receive the title.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  readViewman(viewData.title,i);
-  
-  for (i=0; i<maxGraphs; i++) {
-    readViewman(&(graphArray[i].key),intSize);
-    if (graphArray[i].key) {           /** this graph slot has data **/
-      getGraphFromViewman(i);
-    } /* if graph exists (graphArray[i].key is not zero) */
-  } /* for i in graphs */
-  
-  viewport = makeView2D(&viewData);
-  control = viewport->controlPanel;
-  
-  bsdSignal(SIGTERM,goodbye,DontRestartSystemCalls);
-  
-  /* send acknowledgement to viewport manager */
-  i = 345;
-  check(write(Socket,&(viewport->viewWindow),sizeof(Window)));
-  
-  processEvents();
-  
-  goodbye(-1);
-  return(0);  /* control never reaches here but compiler complains */
-} /* main() */
-
-void 
-mergeDatabases(void)
-{
-  /* using global
-     rDB
-     dsply
-     */
-  XrmDatabase homeDB,serverDB,applicationDB;
-  char filenamebuf[1024];
-  char *filename = &filenamebuf[0];
-  char *classname = "Axiom";
-  char name[255];
-  
-  (void) XrmInitialize();
-  (void) strcpy(name, "/usr/lib/X11/app-defaults/");
-  (void) strcat(name, classname);
-  applicationDB = XrmGetFileDatabase(name);
-  (void) XrmMergeDatabases(applicationDB, &rDB);
-  
-  if (XResourceManagerString(dsply) != NULL)
-    serverDB = XrmGetStringDatabase(XResourceManagerString(dsply));
-  else {
-    (void) strcpy(filename,getenv("HOME"));
-    (void) strcat(filename,"/.Xdefaults");
-    serverDB = XrmGetFileDatabase(filename);
-  }
-  XrmMergeDatabases(serverDB,&rDB);
-  if ( getenv ("XENVIRONMENT") == NULL) {
-    int len;
-    (void) strcpy(filename,getenv("HOME"));
-    (void) strcat(filename,"/.Xdefaults-");
-    len = strlen(filename);
-    (void) gethostname(filename+len,1024-len);
-  }
-  else 
-    (void) strcpy (filename,getenv ("XENVIRONMENT"));
-  
-  homeDB = XrmGetFileDatabase(filename);
-  XrmMergeDatabases(homeDB,&rDB);
-}
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/pot2d.c.pamphlet 
b/src/graph/view2d/pot2d.c.pamphlet
deleted file mode 100644
index f383737..0000000
--- a/src/graph/view2d/pot2d.c.pamphlet
+++ /dev/null
@@ -1,77 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d pot2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _POT2D_C
-
-#include "header2.h"
-
-#include "all-2d.h1"
-
-mouseCoord 
-getPotValue(short eX,short eY,short xH,short yH)
-{
-
-  mouseCoord whereMouse;
-  float x,y;
-
-  x = (float)eX/xH - 1;
-  y = -((float)eY/yH -1);
-            /* make non-linear potentiometer */
-  whereMouse.x = x*x*x; 
-  whereMouse.y = y*y*y; 
-
-  return(whereMouse);
-
-} /* getPotValue() */
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/process2d.c.pamphlet 
b/src/graph/view2d/process2d.c.pamphlet
deleted file mode 100644
index 7c0f7f1..0000000
--- a/src/graph/view2d/process2d.c.pamphlet
+++ /dev/null
@@ -1,922 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d process2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _PROCESS2D_C
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#ifdef RIOSplatform
-#include <sys/select.h>
-#endif
-
-#include "header2.h"
-
-#include "all-2d.h1"
-#include "util.h1"
-#include "gfun.h1"
-#include "xspadfill.h1"
-
-
-static int doit=0;  /* globish variable for picking/dropping/clearing - all 
sorts of
-               2 button sequence events (command & graph #). */
-
-
-void 
-doPick (int i,int bKey)
-{
-  int vCommand=pick2D;
-  
-  picking = no;
-  /* reset indicator so that we're not in pick/drop/query mode anymore */
-  doit = 0;
-  if (graphArray[currentGraph].key) {
-    check(write(Socket,&vCommand,intSize));
-    check(write(Socket,&(graphArray[currentGraph].key),intSize));
-    check(write(Socket,&(graphStateArray[currentGraph]),
-               sizeof(graphStateStruct)));
-    sprintf(control->message,"%s%d","Picked up graph ",currentGraph+1);
-  } else
-    sprintf(control->message,"%s","This graph is empty!");
-  writeControlMessage();
-  
-  
-}
-
-
-void 
-doDrop (int i,int bKey)
-{
-  int vCommand=drop2D;
-  int viewGoAhead;
-  
-  dropping = no;
-  /* reset indicator so that we're not in pick/drop/query mode anymore */
-  doit = 0;
-  check(write(Socket,&(vCommand),intSize));
-  readViewman(&viewGoAhead,intSize);
-  if (viewGoAhead < 0) {
-    sprintf(control->message,"%s%d","Couldn't drop to graph ",currentGraph+1);
-    writeControlMessage();
-  } else {
-    sprintf(control->message,"%s%d","Dropped onto graph ",currentGraph+1);
-    writeControlMessage();
-    freeGraph(currentGraph);
-    readViewman(&(graphArray[currentGraph].key),intSize);
-    getGraphFromViewman(currentGraph);
-    /* simulate a button press to turn display number on and select on */
-    /* need !yes since it will be inverted */
-    graphStateArray[currentGraph].selected = no;
-    graphStateArray[currentGraph].showing =
-      !(graphStateArray[currentGraph].showing);
-    clickedOnGraph(currentGraph,currentGraph+graphStart);
-    clickedOnGraphSelect(currentGraph,currentGraph+graphSelectStart);
-  }
-}
-
-void 
-clickedOnGraphSelect (int i,int bKey)
-{
-  int strlength;
-  
-  switch (doit) {
-  case pick2D:
-    currentGraph = i;
-    doPick(i,bKey);
-    break;
-  case drop2D:
-    currentGraph = i;
-    doDrop(i,bKey);
-    break;
-  case query2D:
-    queriedGraph = i;
-    makeMessageFromData(queriedGraph);
-    writeControlMessage();
-    /* reset indicator so that we're not in pick/drop/query mode anymore */
-    doit = 0;
-    break;
-  default:
-    graphStateArray[i].selected = !(graphStateArray[i].selected);
-    if (graphStateArray[i].selected) {
-      GSetForeground(graphGC,(float)graphBarSelectColor,Xoption);
-      strcpy(control->buttonQueue[bKey].text,"^");
-      strlength = strlen(control->buttonQueue[bKey].text);
-    } else {
-      GSetForeground(graphGC,(float)graphBarNotSelectColor,Xoption);
-      strcpy(control->buttonQueue[bKey].text,"-");
-      strlength = strlen(control->buttonQueue[bKey].text);
-    }
-    /* just to make sure the background is reset from clickedOnGraph */
-    if (mono) {
-      GSetForeground(graphGC,(float)foregroundColor,Xoption);
-      GSetBackground(graphGC,(float)backgroundColor,Xoption);
-    }
-    
-    GDrawImageString(graphGC,control->controlWindow,
-                    control->buttonQueue[bKey].buttonX +
-                    centerX(graphGC,
-                            control->buttonQueue[bKey].text,strlength,
-                            control->buttonQueue[bKey].buttonWidth),
-                    control->buttonQueue[bKey].buttonY +
-                    centerY(graphGC,
-                            control->buttonQueue[bKey].buttonHeight),
-                    control->buttonQueue[bKey].text,strlength,Xoption);
-    GSetForeground(trashGC,(float)foregroundColor,Xoption);
-    GSetLineAttributes(trashGC,2,LineSolid,CapButt,JoinMiter,Xoption);
-    GDrawLine(trashGC,control->controlWindow,0,286,controlWidth,286,Xoption);
-    break;
-  } /* switch doit */
-  
-}
-
-
-static void
-drawControlPushButton(int isOn, int index)
-{
-  GDrawPushButton(dsply, processGC, processGC, processGC,
-                 control->controlWindow,
-                 (control->buttonQueue[index]).buttonX,
-                 (control->buttonQueue[index]).buttonY,
-                 (control->buttonQueue[index]).buttonWidth,
-                 (control->buttonQueue[index]).buttonHeight,
-                 isOn,
-                 (control->buttonQueue[index]).text,
-                 buttonColor,
-                 monoColor((control->buttonQueue[index]).textColor), Xoption);
-  XSync(dsply,False);
-}
-
-
-
-void 
-buttonAction (int bKey)
-{
-  int i;
-  
-  switch (bKey) {
-    
-  case pick2D:
-    if (viewAloned) {
-      sprintf(control->message,"%s","Cannot pick without AXIOM!");
-      writeControlMessage();
-      XSync(dsply,False);
-    }
-    else {
-      doit = pick2D;
-      sprintf(control->message,"%s","Click on the graph to pick");
-      writeControlMessage();
-      XSync(dsply,False);
-    }
-    break;
-    
-  case drop2D:
-    if (viewAloned) {
-      sprintf(control->message,"%s","Cannot drop without AXIOM!");
-      writeControlMessage();
-      XSync(dsply,False);
-    } else {
-      doit = drop2D;
-      sprintf(control->message,"%s","Click on the graph to drop");
-      writeControlMessage();
-      XSync(dsply,False);
-    }
-    break;
-    
-  case query2D:
-    doit = query2D;
-    sprintf(control->message,"%s","Click on the graph to query");
-    writeControlMessage();
-    XSync(dsply,False);
-    break;
-    
-    
-  case zoom2Dx:
-    if (zoomXON)
-      strcpy((control->buttonQueue[zoom2Dx]).text ,
-            "X Off");
-    else
-      strcpy((control->buttonQueue[zoom2Dx]).text , 
-            "X On ");
-    zoomXON = !zoomXON;
-    
-    drawControlPushButton(zoomXON, zoom2Dx);
-    XSync(dsply,False);
-    break;
-    
-  case zoom2Dy:
-    if (zoomYON) strcpy((control->buttonQueue[zoom2Dy]).text,
-                       "Y Off");
-    else strcpy((control->buttonQueue[zoom2Dy]).text ,
-               "Y On ");
-    zoomYON = !zoomYON;
-    drawControlPushButton(zoomYON, zoom2Dy);
-    XSync(dsply,False);
-    break;
-    
-    
-  case translate2Dx:
-    if (transXON) strcpy((control->buttonQueue[translate2Dx]).text,
-                        "X Off");
-    else strcpy( (control->buttonQueue[translate2Dx]).text,
-                "X On ");
-    transXON = !transXON;
-    drawControlPushButton(transXON, translate2Dx);
-    XSync(dsply,False);
-    break;
-    
-  case translate2Dy:
-    if (transYON) strcpy((control->buttonQueue[translate2Dy]).text,
-                        "Y Off");
-    else strcpy( (control->buttonQueue[translate2Dy]).text,
-                "Y On");
-    transYON = !transYON;
-    drawControlPushButton(transYON, translate2Dy);
-    XSync(dsply,False);
-    break;
-    
-  case pointsOnOff:
-    if (pointsON) strcpy((control->buttonQueue[pointsOnOff]).text,
-                        "Pts Off");
-    else strcpy( (control->buttonQueue[pointsOnOff]).text,
-                "Pts On ");
-    pointsON = !pointsON;
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].pointsOn = pointsON;
-    
-    drawControlPushButton(pointsON, pointsOnOff);
-    drawViewport(Xoption);
-    break;
-    
-  case connectOnOff:
-    if (connectON) strcpy((control->buttonQueue[connectOnOff]).text,
-                         "Lines Off");
-    else strcpy( (control->buttonQueue[connectOnOff]).text,
-                "Lines On ");
-    connectON = !connectON;
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].connectOn = connectON;
-    
-    drawControlPushButton(connectON, connectOnOff);
-    drawViewport(Xoption);
-    break;
-    
-  case spline2D:
-    if (splineON) strcpy((control->buttonQueue[spline2D]).text,
-                        "Box Off");
-    else strcpy ((control->buttonQueue[spline2D]).text ,
-                "Box On ");
-    splineON = !splineON;
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].splineOn = splineON;
-    
-    drawControlPushButton(splineON, spline2D);
-    drawViewport(Xoption);
-    break;
-    
-  case axesOnOff2D:
-    if (axesON)
-      strcpy ((control->buttonQueue[axesOnOff2D]).text,
-             "Axes Off");
-    else
-      strcpy ((control->buttonQueue[axesOnOff2D]).text ,
-             "Axes On ");
-    axesON = !axesON;
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].axesOn = axesON;
-    
-    drawControlPushButton(axesON, axesOnOff2D);
-    drawViewport(Xoption);
-    break;
-    
-  case unitsOnOff2D:
-    if (unitsON)
-      strcpy( (control->buttonQueue[unitsOnOff2D]).text,
-             "Units Off");
-    else
-      strcpy ((control->buttonQueue[unitsOnOff2D]).text,
-             "Units On ");
-    unitsON = !unitsON;
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].unitsOn = unitsON;
-    
-    drawControlPushButton(unitsON, unitsOnOff2D);
-    drawViewport(Xoption);
-    break;
-    
-  case ps2D:
-    strcpy(control->message,"Creating postscript now ...");
-    writeControlMessage();
-    drawControlPushButton(1, ps2D);
-    
-    if (PSInit(viewport->viewWindow, viewport->titleWindow) == psError) {
-      strcpy(control->message,"Aborted: PSInit error.");
-      writeControlMessage();
-      drawControlPushButton(0, ps2D);
-      XSync(dsply,False);
-      return;  /* make new temp name for new file */
-    }
-    
-    drawViewport(PSoption);    /* draw picture in PS; create ps script file */
-    
-    if (PSCreateFile(viewBorderWidth, 
-                    viewport->viewWindow,
-                    viewport->titleWindow, 
-                    viewport->title) == psError) {
-      strcpy(control->message,"Aborted: PSCreateFile error.");
-      writeControlMessage();
-      drawControlPushButton(0, ps2D);
-      XSync(dsply,False);
-      return;
-    }
-    
-    clearControlMessage();
-    strcpy(control->message,PSfilename);
-    strcat(control->message," in working dir ");
-    writeControlMessage();
-    drawControlPushButton(0, ps2D);
-    XSync(dsply,False);
-    break;
-    
-  case hideControl2D:
-    if (viewport->haveControl) {
-      viewport->haveControl = no;
-      XUnmapWindow(dsply,control->controlWindow);
-      XSync(dsply,False);
-    }
-    break;
-    
-  case reset2D:
-    /* reset view */
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i] = graphStateBackupArray[i];
-    
-    unitsON = no;
-    strcpy( (control->buttonQueue[unitsOnOff2D]).text,s         = "Units Off");
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].unitsOn = no;
-    drawControlPushButton(unitsON, unitsOnOff2D);
-    
-    pointsON = yes;
-    strcpy ((control->buttonQueue[pointsOnOff]).text ,"Pts On ");
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].pointsOn = yes;
-    drawControlPushButton(pointsON, pointsOnOff);
-    
-    axesON = yes;
-    strcpy ((control->buttonQueue[axesOnOff2D]).text,"Axes On ");
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].axesOn = yes;
-    drawControlPushButton(axesON, axesOnOff2D);
-    
-    connectON = yes;
-    strcpy((control->buttonQueue[connectOnOff]).text,"Lines On ");
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].connectOn = yes;
-    drawControlPushButton(connectON, connectOnOff);
-    
-    splineON = no;
-    strcpy( (control->buttonQueue[connectOnOff]).text ,"Box Off");
-    for (i=0; i<maxGraphs; i++)
-      if (graphStateArray[i].showing && graphStateArray[i].selected)
-       graphStateArray[i].splineOn = splineON;
-    drawControlPushButton(splineON, spline2D);
-    drawViewport(Xoption);
-    
-    break;
-    
-  case closeAll2D:
-    strcpy(control->message,"       Click again to confirm       ");
-    writeControlMessage();
-    drawControlPushButton(1, closeAll2D);
-    XSync(dsply,False);
-    viewport->closing = yes;
-    break;
-    
-  case clear2D:
-    for (i=0; i<maxGraphs; i++) graphStateArray[i].selected = 1;
-    clickedOnGraphSelect(0,graphSelect1);
-    clickedOnGraphSelect(1,graphSelect2);
-    clickedOnGraphSelect(2,graphSelect3);
-    clickedOnGraphSelect(3,graphSelect4);
-    clickedOnGraphSelect(4,graphSelect5);
-    clickedOnGraphSelect(5,graphSelect6);
-    clickedOnGraphSelect(6,graphSelect7);
-    clickedOnGraphSelect(7,graphSelect8);
-    clickedOnGraphSelect(8,graphSelect9);
-    XSync(dsply,False);
-    break;
-    
-  case graph1:
-  case graph2:
-  case graph3:
-  case graph4:
-  case graph5:
-  case graph6:
-  case graph7:
-  case graph8:
-  case graph9:
-    clickedOnGraph(bKey-graphStart,bKey);
-    XSync(dsply,False);
-    break;
-    
-  case graphSelect1:
-  case graphSelect2:
-  case graphSelect3:
-  case graphSelect4:
-  case graphSelect5:
-  case graphSelect6:
-  case graphSelect7:
-  case graphSelect8:
-  case graphSelect9:
-    clickedOnGraphSelect(bKey-graphSelectStart,bKey);
-    XSync(dsply,False);
-    break;
-    
-  } /* switch (action) */
-}
-
-/*********************** X Event Processing ***************************/
-void 
-processEvents(void)
-{
-  
-  XEvent                  *event,
-    tempEvent;
-  Window                  whichWindow;
-  XWindowAttributes       graphWindowAttrib;
-  buttonStruct            *controlButton;
-  mouseCoord              mouseXY;
-  int                     i,
-    someInt,
-    mouseW4,
-    mouseH4,
-    toggleReady, 
-    gotToggle = no,
-    checkButton = no,
-    firstTime = yes,
-    gotEvent = 0,
-    buttonTablePtr,
-    Xcon,
-    len,
-    externalControl;
-  fd_set                  rd;
-  
-  
-  externalControl=0;
-  Xcon = ConnectionNumber(dsply);
-  
-  
-  if (!(event = (XEvent *)malloc(sizeof(XEvent)))) {
-    fprintf(stderr,"Ran out of memory initializing event processing.\n");
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-  
-  controlButton = control->buttonQueue;
-  
-  while(1) {
-    
-    len=0;
-    while(len<=0) {
-      FD_ZERO(&rd);
-      if (externalControl==0) FD_SET(0, &rd);
-      FD_SET(Xcon,&rd);
-      
-      if (XEventsQueued(dsply, QueuedAlready)) {
-       len=1;
-       break;
-      }
-      if (!followMouse) 
-       len=select(FD_SETSIZE,(void *) &rd,0,0,0); 
-      else 
-       len=1;
-    }
-    if (FD_ISSET(Xcon,&rd)|| 
-       XEventsQueued(dsply, QueuedAfterFlush) || 
-       followMouse) {
-      
-      if (followMouse) {
-       if (XPending(dsply)) 
-         XNextEvent(dsply,event);
-       gotEvent++;
-      } else {
-       XNextEvent(dsply,event);
-       gotEvent++;
-      }
-      
-      if (gotToggle || !followMouse) 
-       checkButton = no;
-      
-      if (gotEvent) {
-       whichWindow = ((XButtonEvent *)event)->window;
-       firstTime = no;
-       
-       switch(((XEvent *)event)->type) {
-         
-       case ClientMessage:
-         if (event->xclient.data.l[0] == wm_delete_window) {
-                 goodbye(-1);
-         }
-         else {
-           fprintf(stderr,"Unknown Client Message ...\n");
-         }
-         break;
-       case Expose:
-         if (whichWindow == viewport->titleWindow) {
-           /* get rid of redundant events */
-           XCheckWindowEvent(dsply,
-                             viewport->titleWindow,
-                             ExposureMask,
-                             &tempEvent);
-           writeTitle();
-           XGetWindowAttributes(dsply,
-                                whichWindow,
-                                &graphWindowAttrib);
-           XResizeWindow(dsply,
-                         viewport->viewWindow,
-                         graphWindowAttrib.width,
-                         graphWindowAttrib.height-titleHeight);
-           XSync(dsply,False);
-           break;
-         } else if (whichWindow == viewport->viewWindow) {
-           XCheckWindowEvent(dsply,
-                             viewport->viewWindow,
-                             ExposureMask,
-                             &tempEvent);
-           XGetWindowAttributes(dsply,
-                                viewport->titleWindow,
-                                &graphWindowAttrib);
-           XResizeWindow(dsply,
-                         viewport->viewWindow,
-                         graphWindowAttrib.width,
-                         graphWindowAttrib.height-titleHeight);
-           drawViewport(Xoption);
-           XMapWindow(dsply,whichWindow);
-           XSync(dsply,False);
-           break;
-         } else {      /* it's gotta be the control panel */
-           XGetWindowAttributes(dsply,
-                                control->controlWindow,
-                                &graphWindowAttrib);
-           /* do not allow resizing of control panel */
-           if ((graphWindowAttrib.width != controlWidth) ||
-               (graphWindowAttrib.height != controlHeight)) {
-             XResizeWindow(dsply,
-                           control->controlWindow,
-                           controlWidth,
-                           controlHeight);
-           }
-           drawControlPanel();
-           XSync(dsply,False);
-           break;
-         }
-         break;
-         
-       case MotionNotify:
-         if (followMouse) {
-           while (XCheckMaskEvent(dsply,
-                                  ButtonMotionMask,
-                                  event));
-           mouseXY = getPotValue(((XButtonEvent *)event)->x,
-                                 ((XButtonEvent *)event)->y,
-                                 controlButton->xHalf,
-                                 controlButton->yHalf);
-         }
-         if (controlButton->pot) {
-           gotToggle = no;
-           checkButton = yes;
-         }
-         break;
-         
-       case ButtonRelease:
-         if (followMouse==yes) {
-           followMouse = no;
-           toggleReady = yes;
-           checkButton = no;
-           drawViewport(Xoption);
-         } else {
-           followMouse = no;
-           toggleReady = yes;
-           checkButton = no;
-         }
-         break;
-         
-       case LeaveNotify:
-         /*
-           We still follow the mouse when we leave the pots.
-           */
-         /*      
-                 followMouse = no;
-                 toggleReady = yes; 
-                 checkButton = no; 
-                 */
-
-         break;
-         
-       case ButtonPress:
-         if (whichWindow == viewport->viewWindow) {
-           
-           /* mouse clicked on viewport */
-
-           switch (((XButtonEvent *)event)->button) {
-           case Button3:
-
-             /* print out (x,y) object-space coordinates in message area */
-
-             XGetWindowAttributes(dsply,whichWindow,&graphWindowAttrib);
-             sprintf(viewport->controlPanel->message,
-                     "       >%d<: [%6.2f,%6.2f]       ", 
-                     queriedGraph+1,
-                     projX((((XButtonEvent *)event)->x),
-                           graphWindowAttrib.width,queriedGraph),
-                     projY((((XButtonEvent *)event)->y),
-                           graphWindowAttrib.height,queriedGraph));
-             writeControlMessage();
-             XFlush(dsply);
-             break;
-           default:
-
-             /* Find where mouse is on the viewport => where to put the CP */
-
-             XGetWindowAttributes(dsply,
-                                  whichWindow,
-                                  &graphWindowAttrib);
-             mouseW4 = graphWindowAttrib.width/4;
-             if (((XButtonEvent *)event)->x >
-                 (graphWindowAttrib.width - mouseW4))
-               someInt = 1;
-             else {
-               mouseH4 = graphWindowAttrib.height/4;
-               if (((XButtonEvent *)event)->y >
-                   (graphWindowAttrib.height - mouseH4)) 
-                 someInt = 2;
-               else if (((XButtonEvent *)event)->x < mouseW4) 
-                 someInt = 3;
-               else if (((XButtonEvent *)event)->y < mouseH4) 
-                 someInt = 4;
-               else someInt = 0;
-             }
-             if (viewport->haveControl) {
-               XUnmapWindow(dsply,control->controlWindow);
-             }
-             putControlPanelSomewhere(someInt);
-             XMapWindow(dsply,control->controlWindow);
-             XSync(dsply,False);
-             break;
-           } /* switch on mouse button */
-         } else if (whichWindow == control->colormapWindow) {
-
-           /* mouse clicked on colormap */
-
-           followMouse = yes;
-           gotToggle   = no;
-           checkButton = yes;
-           firstTime   = yes;
-         } else if (whichWindow != control->controlWindow) {
-
-           /* mouse clicked on control window (not colormap) */
-
-           if (controlButton->self != whichWindow) {
-             buttonTablePtr = *((int *)XLookUpAssoc(dsply,table,whichWindow));
-             controlButton = &(control->buttonQueue[buttonTablePtr]);
-           }
-           
-           if (controlButton->pot) {
-             /* figure out [x,y] for this button in the range [-1..1,-1..1] */
-             mouseXY = getPotValue(((XButtonEvent *)event)->x,
-                                   ((XButtonEvent *)event)->y,
-                                   controlButton->xHalf,
-                                   controlButton->yHalf);
-             followMouse = yes;
-             gotToggle = no;
-           } else {
-             followMouse = no;
-             gotToggle = yes;  /* auto-repeat on toggle buttons not allowed */
-             if (toggleReady) {
-               toggleReady = no;
-             }
-           }
-           checkButton = yes;
-           firstTime   = yes;
-         }
-         break;
-         
-       } /* switch */
-       gotEvent--;
-      } /* if gotEvent */
-      
-      
-      /* Allow repeat polling when mouse button clicked on a potentiometer. */
-
-      if (followMouse && !firstTime && (followMouse++ > mouseWait)) {
-       followMouse = yes;   /* reset for next timing loop */
-       checkButton = yes;
-      }
-      if (checkButton) {
-       if (viewport->closing && (controlButton->buttonKey == closeAll2D)) {
-         goodbye(-1);
-       } else {
-         clearControlMessage();
-         viewport->closing = no;
-         drawControlPushButton(0, closeAll2D);
-         if ((doit) &&
-             ((controlButton->buttonKey < graphStart) &&
-              (controlButton->buttonKey > (graphSelectStart + maxGraphs))))
-           doit = 0;
-         
-         switch(controlButton->buttonKey) {
-           
-         case translate2D:
-           for (i=0; i<maxGraphs; i++) {
-             if (graphStateArray[i].showing && graphStateArray[i].selected) {
-               if (transXON) {
-                 graphStateArray[i].centerX -= mouseXY.x * 0.1;
-                 if (graphStateArray[i].centerX > maxDelta)
-                   graphStateArray[i].centerX = maxDelta;
-                 else if (graphStateArray[i].centerX < -maxDelta)
-                   graphStateArray[i].centerX = maxDelta;
-               }
-               if (transYON) {
-                 graphStateArray[i].centerY -= mouseXY.y * 0.1;
-                 if (graphStateArray[i].centerY > maxDelta)
-                   graphStateArray[i].centerY = maxDelta;
-                 else if (graphStateArray[i].centerY < -maxDelta)
-                   graphStateArray[i].centerY = maxDelta;
-               }
-             } /* graph showing or selected */
-           }  /* for graphs */
-           drawViewport(Xoption);
-           break;
-           
-         case scale2D:
-           for (i=0; i<maxGraphs; i++) {
-             if (graphStateArray[i].showing && graphStateArray[i].selected) {
-               if (zoomXON) {
-                 graphStateArray[i].scaleX *= (1 - mouseXY.y * 0.3);
-                 if (graphStateArray[i].scaleX > maxScale)
-                   graphStateArray[i].scaleX = maxScale;
-                 else if (graphStateArray[i].scaleX < minScale)
-                   graphStateArray[i].scaleX = minScale;
-               }
-               if (zoomYON) {
-                 graphStateArray[i].scaleY *= (1 - mouseXY.y * 0.3);
-                 if (graphStateArray[i].scaleY > maxScale)
-                   graphStateArray[i].scaleY = maxScale;
-                 else if (graphStateArray[i].scaleY < minScale)
-                   graphStateArray[i].scaleY = minScale;
-               }
-             } /* graph showing or selected */
-           }  /* for graphs */
-           drawViewport(Xoption);
-           break;
-           
-         default:
-           buttonAction(controlButton->buttonKey);
-         } /* switch on buttonKey */
-       } /* else - not closing */
-      } /* if checkButton */
-    } /* if FD_ISSET(Xcon.... */
-    else if FD_ISSET(0,&rd) {
-      externalControl=spadAction(); /* returns (-1) if broken ,0 if success */
-      if (spadDraw && (externalControl==0)) drawViewport(Xoption);
-    }
-  } /* while */
-} /* processEvents() */
-
-
-
-
-
-
-void 
-clickedOnGraph (int i,int bKey)
-{
-  
-  switch (doit) {
-  case pick2D:
-    currentGraph = queriedGraph = i;
-    doPick(i,bKey);
-    break;
-  case drop2D:
-    currentGraph = queriedGraph = i;
-    doDrop(i,bKey);
-    break;
-  case query2D:
-    queriedGraph = i;
-    makeMessageFromData(queriedGraph);
-    writeControlMessage();
-    /* reset indicator so that we're not in pick/drop/query mode anymore */
-    doit = 0;
-    break;
-  default:
-    graphStateArray[i].showing = !(graphStateArray[i].showing);
-    if (mono) {
-      if (graphStateArray[i].showing) {
-       GSetForeground(graphGC,(float)backgroundColor,Xoption);
-       GSetBackground(graphGC,(float)foregroundColor,Xoption);
-      } else {
-       GSetForeground(graphGC,(float)foregroundColor,Xoption);
-       GSetBackground(graphGC,(float)backgroundColor,Xoption);
-      }
-      GDrawImageString(graphGC,
-                      control->controlWindow,
-                      (control->buttonQueue[bKey]).buttonX +
-                      centerX(graphGC,(control->buttonQueue[bKey]).text,1,
-                              (control->buttonQueue[bKey]).buttonWidth),
-                      (control->buttonQueue[bKey]).buttonY +
-                      
centerY(graphGC,(control->buttonQueue[bKey]).buttonHeight),
-                      (control->buttonQueue[bKey]).text,
-                      1,
-                      Xoption);
-    } else {
-      if (graphStateArray[i].showing)
-       GSetForeground(graphGC,(float)graphBarShowingColor,Xoption);
-      else
-       GSetForeground(graphGC,(float)graphBarHiddenColor,Xoption);
-      GDrawString(graphGC,
-                 control->controlWindow,
-                 (control->buttonQueue[bKey]).buttonX +
-                 centerX(graphGC,(control->buttonQueue[bKey]).text,1,
-                         (control->buttonQueue[bKey]).buttonWidth),
-                 (control->buttonQueue[bKey]).buttonY +
-                 centerY(graphGC,(control->buttonQueue[bKey]).buttonHeight),
-                 (control->buttonQueue[bKey]).text,1,Xoption);
-    }
-    drawViewport(Xoption);
-    break;
-  } /* switch doit */
-  
-}
-
-
-
-
-
-
-
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/spadaction2d.c.pamphlet 
b/src/graph/view2d/spadaction2d.c.pamphlet
deleted file mode 100644
index e9deb42..0000000
--- a/src/graph/view2d/spadaction2d.c.pamphlet
+++ /dev/null
@@ -1,308 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d spadaction2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _SPADACTION2D_C
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "header2.h"
-
-#include "all-2d.h1"
-#include "util.h1"
-
-
-/******************************
- * int readViewman(info,size) *
- ******************************/
-
-int 
-readViewman(void * info,int size)
-{
-  int mold = 0;
-
-  sprintf(errorStr,"%s %d %s","read of ",size,
-         " bytes from viewport manager\n");
-  mold = check(read(0,info,size));   
-  return(mold);
-
-}
-
-/********************
- * int spadAction() *
- ********************/
-extern int viewAloned;
-int 
-spadAction(void)
-{
-  int code,viewCommand;
-  float f1,f2;
-  int i1,i2,i3,viewGoAhead;
-  static int ack = 1;
-
-  if (viewAloned==yes) {
-      close(0);
-      return(-1);
-      }
-  readViewman(&viewCommand,intSize);
-
-  switch (viewCommand) {
-
-  case hideControl2D:
-    readViewman(&i1,intSize);
-    if (i1) {                         /* show control panel */
-      if (viewport->haveControl) XUnmapWindow(dsply,control->controlWindow);
-      putControlPanelSomewhere(someInt);
-    } else {    /* turn off control panel */
-      if (viewport->haveControl) {
-        viewport->haveControl = no;
-        XUnmapWindow(dsply,control->controlWindow);
-      }
-    }
-    break;
-
-  case changeTitle:
-    readViewman(&i1,intSize);
-    readViewman(viewport->title,i1);
-    viewport->title[i1] = '\0';
-    writeTitle();
-    writeControlTitle();
-    XFlush(dsply);
-    spadDraw=no;
-    break;
-
-  case writeView:
-    readViewman(&i1,intSize);
-    readViewman(filename,i1);
-    filename[i1] = '\0';
-    sprintf(errorStr,"writing of viewport data");
-    i3 = 0;
-    readViewman(&i2,intSize);
-    while (i2) {
-      i3 = i3 | (1<<i2);
-      readViewman(&i2,intSize);
-    }
-    if (writeViewport(i3) < 0)
-      fprintf(stderr,"          Nothing was written\n");
-    break;
-
-  case closeAll2D:
-    code = check(write(Socket,&ack,intSize));
-    goodbye(-1);
-
-  case ps2D:
-    readViewman(&i1,intSize);
-    buttonAction(viewCommand);
-    break;
-
-  case axesOnOff2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].axesOn = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case axesColor2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].axesColor = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case unitsOnOff2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].unitsOn = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case unitsColor2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].unitsColor = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case connectOnOff:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].connectOn = i2; 
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case pointsOnOff:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].pointsOn = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case spline2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    graphStateArray[i1].splineOn = i2;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;
-
-  case showing2D:
-    readViewman(&i1,intSize);
-    i1--;
-    readViewman(&i2,intSize);
-    /* simulate a button press to turn display number on/off */
-    graphStateArray[i1].showing = !i2;
-    clickedOnGraph(i1,i1+graphStart);
-    break;
-
-  case scale2D:
-    readViewman(&i1,intSize);
-    i1--;   /* passed index is [1..9] but internal representation is [0..8] */
-    readViewman(&f1,floatSize);
-    readViewman(&f2,floatSize);
-    graphStateArray[i1].scaleX = f1;
-    graphStateArray[i1].scaleY = f2;
-    if (graphStateArray[i1].scaleX > maxScale) 
-      graphStateArray[i1].scaleX = maxScale;
-    else
-      if (graphStateArray[i1].scaleX < minScale) 
-        graphStateArray[i1].scaleX = minScale;
-    if (graphStateArray[i1].scaleY > maxScale) 
-      graphStateArray[i1].scaleY = maxScale;
-    else
-      if (graphStateArray[i1].scaleY < minScale) 
-        graphStateArray[i1].scaleY = minScale;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;   /* scale2D */
-
-
-  case translate2D:
-    readViewman(&i1,intSize);
-    i1--;   /* passed index is [1..9] but internal representation is [0..8] */
-    readViewman(&f1,floatSize);
-    readViewman(&f2,floatSize);
-    graphStateArray[i1].centerX = f1;
-    graphStateArray[i1].centerY = f2;
-    if (graphStateArray[i1].centerX > maxDelta) 
-      graphStateArray[i1].centerX = maxDelta;
-    else if (graphStateArray[i1].centerX < -maxDelta) 
-           graphStateArray[i1].centerX = maxDelta;
-    if (graphStateArray[i1].centerY > maxDelta) 
-      graphStateArray[i1].centerY = maxDelta;
-    else if (graphStateArray[i1].centerY < -maxDelta) 
-           graphStateArray[i1].centerY = maxDelta;
-    if (graphStateArray[i1].showing) spadDraw=yes;
-    break;   /* translate2D */
-
-  case moveViewport:
-    readViewman(&i1,intSize);
-    readViewman(&i2,intSize);
-    XMoveWindow(dsply,viewport->titleWindow,i1,i2);
-    XSync(dsply,False);
-    break;
-
- case resizeViewport:
-    readViewman(&i1,intSize);
-    readViewman(&i2,intSize);
-    XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight); 
-    XResizeWindow(dsply,viewport->viewWindow,i1,i2);
-    spadDraw=yes;
-    break;
-
-  case putGraph:
-    readViewman(&i1,intSize);          /* key of graph to get */
-    readViewman(&i2,intSize);          /* slot to drop graph onto 0..8*/
-    readViewman(&viewGoAhead,intSize);
-    if (viewGoAhead < 0) {
-      sprintf(control->message,"%s%d","Couldn't put into graph ",i2+1);
-      writeControlMessage();
-    } else {
-      sprintf(control->message,"%s%d","Dropped onto graph ",i2+1);
-      writeControlMessage();
-      freeGraph(i2);
-      graphArray[i2].key = i1;
-      getGraphFromViewman(i2);
-      /* simulate a button press to turn display number on and select on */
-      /* need !yes since it will be inverted */
-      graphStateArray[i2].selected = no;  
-      graphStateArray[i2].connectOn = yes;  
-      graphStateArray[i2].showing = !(graphStateArray[i2].showing); 
-      clickedOnGraph(i2,i2+graphStart);
-      clickedOnGraphSelect(i2,i2+graphSelectStart);
-    }
-    break;
-
-  case spadPressedAButton:
-    readViewman(&i1,intSize);
-    buttonAction(i1);
-    break;
-
-  default:
-    return(-1);
-  } /* switch */
-
-
-  ack++;
-  code = check(write(Socket,&ack,intSize));
-  return(0);
-
-}
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/stuff2d.c.pamphlet 
b/src/graph/view2d/stuff2d.c.pamphlet
deleted file mode 100644
index b2ce101..0000000
--- a/src/graph/view2d/stuff2d.c.pamphlet
+++ /dev/null
@@ -1,134 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d stuff2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _STUFF2D_C
-
-#include <unistd.h>
-#include <stdlib.h>
-
-#include "header2.h"
-
-#include "all-2d.h1"
-#include "gfun.h1"
-#include "util.h1"
-
-
-/**************************/
-/***  float absolute(x) ***/
-/**************************/
-
-float 
-absolute(float x)
-{
-  if (x<0.0) {
-    return(-x);
-  } else {
-    return(x);
-  }
-}
-
-
-
-/************************/
-/***  void goodbye()  ***/
-/************************/
-
-void 
-goodbye(int sig)
-{
-  int Command,i;
-
-#ifdef DEBUG
-  fprintf(stderr,"view2d: Tidying up and exiting\n");
-#endif
-  PSClose(); /* free PS file and data structure space */
-
-  XFreeGC(dsply,globalGC1);
-  XFreeGC(dsply,globalGC2);
-  XFreeGC(dsply,globGC);
-  XFreeGC(dsply,trashGC);
-  XFreeGC(dsply,anotherGC);
-  XFreeGC(dsply,controlMessageGC);
-  XFreeGC(dsply,graphGC);
-  XFreeGC(dsply,unitGC);
-
-  XFreeFont(dsply,globalFont);
-  XFreeFont(dsply,buttonFont);
-  XFreeFont(dsply,headerFont);
-  XFreeFont(dsply,titleFont);
-  XFreeFont(dsply,graphFont);
-  XFreeFont(dsply,unitFont);
-
-  XFreeColormap(dsply,colorMap);
-
-  /** send off the current graphs to viewport manager **/
-
-  Command = viewportClosing;
-  check(write(Socket,&Command,intSize));
-
-  for (i=0; i<maxGraphs;i++) {
-    check(write(Socket,&graphArray[i].key,intSize));
-  }
-  close(Socket);
-  XCloseDisplay(dsply);
-  exit(0);
-
-}
-
-
-
-
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/viewport2d.c.pamphlet 
b/src/graph/view2d/viewport2d.c.pamphlet
deleted file mode 100644
index 5bacedb..0000000
--- a/src/graph/view2d/viewport2d.c.pamphlet
+++ /dev/null
@@ -1,712 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d viewport2d}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _VIEWPORT2D_C
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <math.h>
-#include <X11/X.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <limits.h>
-
-#define NotPoint       (SHRT_MAX)
-#define eqNANQ(x)      (x == NotPoint)
-
-#include "header2.h"
-
-#include "all-2d.h1"
-#include "gfun.h1"
-#include "util.h1"
-#include "xspadfill.h1"
-
-#include "spadbitmap.bitmap"
-#include "spadmask.mask"
-
-#define rint(z) ((int)(z))
-
-Atom    wm_delete_window;               
-
-
-/*************************** 
- ***  void writeTitle()  *** 
- ***************************/
-
-void 
-writeTitle(void)
-{
-
-  int strlength;
-  XWindowAttributes attribInfo;
-  
-  XGetWindowAttributes(dsply,viewport->titleWindow,&attribInfo);
-  if (mono) GSetForeground(anotherGC,(float)foregroundColor,Xoption);
-  else GSetForeground(anotherGC,(float)titleColor,Xoption);
-  XClearWindow(dsply,viewport->titleWindow); /* it's behind the viewWindow */
-  strlength = strlen(viewport->title);
-  GDrawImageString(anotherGC,viewport->titleWindow,
-              centerX(anotherGC,viewport->title,strlength,attribInfo.width),
-              15,viewport->title,strlength,Xoption);
-
-}
-
-
-/********************************/
-/***  void drawTheViewport()  ***/
-/********************************/
-
-void 
-drawTheViewport(int dFlag)
-{
-
-  Window            vw;
-  XWindowAttributes vwInfo;
-  pointListStruct   *aList;
-  pointStruct       *aPoint;
-  XPoint            *anXPoint,*tempXpt;
-  XArc              *anXarc;
-  Vertex            *anX10Point;
-  float             jj,diffX, diffY, tickStart,oneTickUnit;
-  int               i,j,k,ii,halfSize;
-  int               charlength,strlength,halflength,halfheight;
-  int               ptX,ptY,ptX1,ptY1,clipped, clipped1;
-  int               xAxis,yAxis,dummyInt, ascent, descent;
-  int               unitWidth,boxX,boxY,boxW,boxH;
-  char              aunit[20];
-  XCharStruct       overall;
-
-  drawMore = yes;
-  vw = viewport->viewWindow;
-  XGetWindowAttributes(dsply,vw,&vwInfo);
-  aspectR = (float)vwInfo.width/(float)vwInfo.height;
-
-  XTextExtents(unitFont,"o",1,&dummyInt,&ascent,&descent,&overall);
-  halfheight = (ascent + descent) / 2;
-
-  /* Calculate various factors for use in projection. */
-  /* Scale the plot, so that the scaling between the axes remains 
-     constant and fits within the smaller of the two dimensions. */
-
-  charlength = overall.width;
-
-  if (dFlag==Xoption) XClearWindow(dsply,vw);
-
-  for (i=0; i<maxGraphs; i++) {
-
-    if ((graphArray[i].key) && (graphStateArray[i].showing)) {
-
-      /* Scale y coordinate dimensions relative to viewport aspect ratio. */
-     
-      graphArray[i].yNorm = 1.0/((graphArray[i].ymax-graphArray[i].ymin) *
-                                 aspectR);
-      graphArray[i].originY = -graphArray[i].ymin*graphArray[i].yNorm 
-       - 0.5/aspectR;
-      graphArray[i].unitY = graphArray[i].spadUnitY*graphArray[i].yNorm;
-
-      xAxis = rint(vwInfo.width *
-                  ((graphArray[0].originX - graphStateArray[0].centerX) *
-                   graphStateArray[0].scaleX + 0.5));
-      yAxis= rint(vwInfo.height * aspectR *
-                 (1 - ((graphArray[0].originY*aspectR - 
-                        graphStateArray[0].centerY) *
-                       graphStateArray[0].scaleY + 0.5*aspectR )));
-
-      if (graphStateArray[i].axesOn) {
-        if (dFlag==Xoption) /* do only for X, ps uses default of black */
-          GSetForeground(globalGC1,
-                        (float)monoColor(graphStateArray[i].axesColor),
-                        dFlag);
-                        
-       if ((yAxis >=0) && (yAxis <= vwInfo.height))
-          GDrawLine(globalGC1,vw,
-                   0,yAxis,
-                   vwInfo.width,yAxis,
-                   dFlag);
-       if ((xAxis >=0) && (xAxis <= vwInfo.width))
-         GDrawLine(globalGC1,vw,
-                   xAxis,0,
-                   xAxis,vwInfo.height,
-                   dFlag);
-      }
-        
-
-      tempXpt   = anXPoint   = xPointsArray[i].xPoint;
-      anX10Point = xPointsArray[i].x10Point;
-      anXarc     = xPointsArray[i].arc;
-
-      for (j=0,aList=graphArray[i].listOfListsOfPoints;
-           (j<graphArray[i].numberOfLists);
-           j++, aList++) {
-
-        for (k=0,aPoint=aList->listOfPoints;
-             (k<aList->numberOfPoints); 
-             k++,aPoint++) {
-
-          if (graphStateArray[i].scaleX > 99.0)
-            graphStateArray[i].scaleX = 99.0;
-          if (graphStateArray[i].scaleY > 99.0)
-            graphStateArray[0].scaleY = 99.0;
-          if (i > 0) {
-            if (isNaN(aPoint->x)) {
-              anXPoint->x = anX10Point->x = NotPoint;
-            }
-           else {
-              diffX = graphArray[i].xmax-graphArray[i].xmin;
-              anXPoint->x = anX10Point->x = vwInfo.width *
-                ((aPoint->x * diffX/(graphArray[0].xmax-graphArray[0].xmin)
-                 + (graphArray[0].originX - graphArray[i].originX*diffX /
-                    (graphArray[0].xmax-graphArray[0].xmin))
-                 - graphStateArray[0].centerX)*graphStateArray[i].scaleX+0.5);
-            }
-            if (isNaN(aPoint->y)) {
-              anXPoint->y = anX10Point->y = NotPoint;
-           }
-            else {
-              diffY = graphArray[i].ymax-graphArray[i].ymin;
-              anXPoint->y = anX10Point->y = vwInfo.height * aspectR *
-               (1 - ((aPoint->y * diffY/(graphArray[0].ymax-graphArray[0].ymin)
-                      + (graphArray[0].originY - graphArray[i].originY* diffY/
-                         (graphArray[0].ymax-graphArray[0].ymin))*aspectR
-                      - graphStateArray[0].centerY) *
-                     graphStateArray[i].scaleY + 0.5*aspectR));
-            }
-          } else {
-            if (isNaN(aPoint->x)) {
-              anXPoint->x = anX10Point->x = NotPoint;
-            }
-           else {
-              anXPoint->x = anX10Point->x = vwInfo.width *
-                ((aPoint->x - graphStateArray[i].centerX) * 
-                graphStateArray[i].scaleX + 0.5);
-            }
-            if (isNaN(aPoint->y)) {
-              anXPoint->y = anX10Point->y = NotPoint;
-           }
-           else {
-              anXPoint->y = anX10Point->y = vwInfo.height * aspectR *
-                (1 - ((aPoint->y - graphStateArray[i].centerY) * 
-                     graphStateArray[i].scaleY + 0.5*aspectR));
-            }
-          }
-
-          /* first or last point */ 
-          if (k == 0 || k == (aList->numberOfPoints - 1)) {
-           anX10Point->flags = 0;
-          } else {
-            anX10Point->flags = VertexCurved;
-          }
-
-          anXPoint++;
-          anX10Point++;
-          anXarc++;
-        }      /* for aPoint in pointList */
-          
-       aPoint--; /* make it legal, the last one*/
-        if (graphStateArray[i].connectOn || graphStateArray[i].pointsOn) {
-          halfSize = aList->pointSize/2;
-          ptX = tempXpt->x;
-          ptY = tempXpt->y;
-          clipped = ptX > vwInfo.x && ptX < vwInfo.width &&
-           ptY > 0 && ptY < vwInfo.height;
-          if (graphStateArray[i].pointsOn) {
-            if (dFlag==Xoption) {
-              if (mono) {
-                GSetForeground(globalGC1,
-                              (float)monoColor((int)(aPoint->hue)),
-                              dFlag);
-              } else {
-                GSetForeground(globalGC1,
-                              (float)XSolidColor((int)(aPoint->hue),
-                                                 (int)(aPoint->shade)),
-                              dFlag);
-              }
-            }
-            if (clipped && !eqNANQ(ptX) && !eqNANQ(ptY))
-              GFillArc(globalGC1,vw,ptX-halfSize,
-                      ptY-halfSize,aList->pointSize,aList->pointSize,
-                      0,360*64, dFlag);
-                      
-          } /* if points on */
-          for (ii=0, aPoint=aList->listOfPoints; 
-              ii<aList->numberOfPoints;
-              ++ii, ++tempXpt, ++aPoint) {
-            ptX1 = tempXpt->x;
-            ptY1 = tempXpt->y;
-            clipped1 = ptX1 > vwInfo.x && ptX1 < vwInfo.width &&
-             ptY1 > 0 && ptY1 < vwInfo.height;
-            if (graphStateArray[i].connectOn) {
-              if (dFlag==Xoption) {
-                if (mono) {
-                  GSetForeground(globalGC1,
-                        (float)monoColor((int)(aList->lineColor-1)/5),
-                        dFlag);
-                } else {
-                  GSetForeground(globalGC1,
-                        (float)XSolidColor((int)(aList->lineColor-1)/5,
-                                           (int)((aList->lineColor-1)%5)/2),
-                                dFlag);
-                }
-             } /* if X */
-              if ((clipped || clipped1) && !eqNANQ(ptX) && !eqNANQ(ptY) &&
-                 !eqNANQ(ptX1) && !eqNANQ(ptY1))
-                GDrawLine(globalGC1,vw,
-                         ptX,ptY,ptX1,ptY1,
-                         dFlag);
-            } /* if lines on */
-            if (graphStateArray[i].pointsOn) {
-              if (dFlag==Xoption) {
-                if (mono) {
-                  GSetForeground(globalGC1,
-                                (float)monoColor((int)(aPoint->hue)),
-                                dFlag);
-                } else {
-                  GSetForeground(globalGC1,
-                                (float)XSolidColor((int)(aPoint->hue),
-                                                   (int)(aPoint->shade)),
-                                dFlag);
-                }
-              }
-              if (clipped1 && !eqNANQ(ptX1) && !eqNANQ(ptY1))
-                GFillArc(globalGC1,vw,ptX1-halfSize,
-                        ptY1-halfSize,aList->pointSize,aList->pointSize,
-                        0,360*64, dFlag);
-            } /* if points on */
-            ptX = ptX1;  ptY = ptY1;  clipped = clipped1;
-          } /* for all points */
-       } /* if points or lines on */
-
-        if (graphStateArray[i].splineOn) {   /* need spline color as well */
-          if (dFlag==Xoption)  /* do only for X, ps uses default of black */
-           GSetForeground(globalGC1,
-                          (float)monoColor(148),
-                          dFlag);
-          boxX = vwInfo.width *
-           ((-0.5 - graphStateArray[i].centerX)*
-            graphStateArray[i].scaleX + 0.5);
-          boxY = vwInfo.height * aspectR *
-           (1 - ((0.5 - graphStateArray[i].centerY)*
-                 graphStateArray[i].scaleY + 0.5*aspectR));
-
-          boxW = graphStateArray[i].scaleX * vwInfo.width + 1;
-          boxH = graphStateArray[i].scaleY * vwInfo.height * aspectR + 1;
-
-          GDrawRectangle(globalGC1,vw,
-                        boxX,boxY,boxW,boxH,
-                        dFlag);
-        }
-
-        tempXpt = anXPoint;
-      }     /* for a aList in listofListsOfPoints */
-      if (graphStateArray[i].unitsOn) {
-       /* do only for X, ps uses default of black */
-        if (dFlag==Xoption)
-          GSetForeground(unitGC,
-                        (float)monoColor(graphStateArray[i].unitsColor),
-                        dFlag);
- 
-
-        tickStart   = calcUnitX(0);
-        oneTickUnit = calcUnitX(1) - tickStart;
-
-        /* ticks along the positive X axis */
-
-        unitWidth = 5*overall.width;            /* limit on acceptable 
separation : 5 chars */
-        k = floor(unitWidth/oneTickUnit) +1;    /* get skipping integer */
-        for (ii=0, jj = tickStart;
-            jj < vwInfo.width;
-            ii=ii+k,jj =jj+k* oneTickUnit) {
-         if (jj >= 0) {
-
-           /* ticks stuck to viewport*/
-           GDrawLine(unitGC,vw,
-                     
(int)rint(jj),vwInfo.height-8,(int)rint(jj),vwInfo.height-4,
-                     dFlag);
-
-           sprintf(aunit,"%0.3g",ii*graphArray[0].spadUnitX);
-           strlength=strlen(aunit);
-           halflength=XTextWidth(unitFont,aunit,strlength)/2;
-
-           if (dFlag == Xoption) GDrawImageString(unitGC,
-                                            vw,
-                                            (int)rint(jj) - halflength,
-                                            vwInfo.height -8 -descent, 
-                                            aunit,
-                                            strlength, 
-                                            dFlag);
-           if (dFlag == PSoption) GDrawImageString(unitGC,
-                                             vw,
-                                             (int)rint(jj) -(strlength*3) ,
-                                             vwInfo.height -14, 
-                                             aunit,
-                                             strlength, 
-                                             dFlag); 
-           /* these are "eyeball" parameters for the given PS font */
-              
-         }
-            
-       }
-        /* ticks along the negative X axis */
-        for (ii=-k,jj=tickStart - k*oneTickUnit;
-            jj > 0;
-            ii=ii-k,jj = jj-k*oneTickUnit) {
-         if (jj <= vwInfo.width) {
-
-           /* ticks stuck to viewport*/
-           GDrawLine(unitGC,vw,
-                     
(int)rint(jj),vwInfo.height-8,(int)rint(jj),vwInfo.height-4,
-                     dFlag);
-
-           sprintf(aunit,"%0.3g",ii*graphArray[0].spadUnitX);
-           strlength=strlen(aunit);
-           halflength=XTextWidth(unitFont,aunit,strlength)/2;
-
-           if (dFlag == Xoption) GDrawImageString(unitGC,
-                                            vw,
-                                            (int)rint(jj) - halflength,
-                                            vwInfo.height -8 -descent, 
-                                            aunit,
-                                            strlength, 
-                                            dFlag);
-           if (dFlag == PSoption) GDrawImageString(unitGC,
-                                             vw,
-                                             (int)rint(jj) -(strlength*3) ,
-                                             vwInfo.height -14, 
-                                             aunit,
-                                             strlength, 
-                                             dFlag);
-           /* these are "eyeball" parameters for the given PS font */
-         }
-       }
-      
-        tickStart = calcUnitY(0);
-        oneTickUnit = calcUnitY(1) - tickStart;
-     
-        /* ticks along the positive Y axis */
-        unitWidth = 2*(ascent+descent);                 /* limit of acceptable 
separation */
-        k = floor(unitWidth/fabs(oneTickUnit)) +1;  /* get skipping integer */
-        for (ii=0,jj = tickStart;
-            jj > 0;
-            ii=ii+k,jj =jj+k*oneTickUnit ) {
-         if  (jj < vwInfo.height) {
- 
-           /* ticks stuck to viewport*/
-           /* on the right */
-           /*
-              GDrawLine(unitGC,vw,
-             vwInfo.width-6,(int)rint(jj),
-             vwInfo.width-2,(int)rint(jj),dFlag);
-             */
-           /* on the left */
-           GDrawLine(unitGC,vw,
-                     2,(int)rint(jj),
-                     6,(int)rint(jj),
-                     dFlag);
-           sprintf(aunit,"%0.3g",ii*graphArray[0].spadUnitY);
-           strlength=strlen(aunit);
-           XTextExtents(unitFont,aunit,strlength,&dummyInt,
-                        &ascent,&descent,&overall);
-           halflength=overall.width;           /* let's reuse that variable */
-
-           if(dFlag == Xoption){
-              /* on the right */
-             /*
-               GDrawImageString(unitGC, vw,
-               vwInfo.width-halflength -6-descent,
-               (int)rint(jj)+ascent/2 , 
-               aunit, strlength, dFlag);
-               */
-              /* on the left */
-             GDrawImageString(unitGC, vw,
-                              8 + charlength/2,
-                              (int)rint(jj)+ascent/2 , 
-                              aunit, strlength, dFlag);
-           }
-           if(dFlag == PSoption){
-              /* on the right */
-             /*
-               GDrawImageString(unitGC, vw,
-               vwInfo.width - 6 - (strlength*6),
-               (int)rint(jj)+4, 
-               aunit, strlength, dFlag);
-               */
-              /* on the left */
-             GDrawImageString(unitGC, vw,
-                              8,(int)rint(jj)+4, 
-                              aunit, strlength, dFlag);
-             /* these are "eyeball" parameters for the given PS font */
-           }
-         }
-       }
-
-        /* ticks along the negative Y axis */
-    
-        for (ii=(-k),jj = tickStart - k*oneTickUnit;
-            jj < vwInfo.height;
-            ii=ii-k,jj =jj-k*oneTickUnit) {
-         if (jj > 0) {
-
-           /* ticks stuck to viewport*/
-           /* on the right */
-           /*
-              GDrawLine(unitGC,vw,
-             vwInfo.width-6,(int)rint(jj),
-             vwInfo.width-2,(int)rint(jj),
-             dFlag);
-             */
-           /* on the left */
-           GDrawLine(unitGC,vw,
-                     2,(int)rint(jj),
-                     6,(int)rint(jj),
-                     dFlag);
-
-           sprintf(aunit,"%0.3g",ii*graphArray[0].spadUnitY);
-           strlength=strlen(aunit);
-           XTextExtents(unitFont,aunit,strlength,&dummyInt,
-                        &ascent,&descent,&overall);
-           halflength=overall.width;           /* let's reuse that variable */
-
-           if(dFlag == Xoption){
-              /* on the right */
-             /*
-               GDrawImageString(unitGC, vw,
-               vwInfo.width-halflength -6-descent,
-               (int)rint(jj)+ascent/2 , 
-               aunit, strlength, dFlag);
-               */
-              /* on the left */
-             GDrawImageString(unitGC, vw,
-                              8 + charlength/2,
-                              (int)rint(jj)+ascent/2 , 
-                              aunit, strlength, dFlag);
-           }
-           if(dFlag == PSoption){
-              /* on the right */
-             /*
-               GDrawImageString(unitGC, vw,
-               vwInfo.width -6 -(strlength*6),
-               (int)rint(jj)+4 , 
-               aunit, strlength, dFlag);
-               */
-              /* on the left */
-             GDrawImageString(unitGC, vw,
-                              8,
-                              (int)rint(jj)+4 , 
-                              aunit, strlength, dFlag);
-             /* these are "eyeball" parameters for the given PS font */
-           }
-         }
-       }
-      
-      }  /* if unitsOn */
-    }    /* if graph i exists and is showing */
-  }   /* for i in graphs */
-
-
-  if (dFlag==Xoption) {
-    if (!followMouse) {
-      /* no need to do this while autorepeating */
-      makeMessageFromData(queriedGraph);
-      writeControlMessage();  
-    }
-    XFlush(dsply);
-  }
-
-}           /* drawViewport() */
-
-
-
-/************************************
- ***  viewPoints *makeViewport()  ***
- ************************************/
-
-viewPoints *
-makeViewport(char *title,int vX,int vY,int vW,int vH,int showCP)
-{
-  Pixmap               spadbits,spadmask;
-  XSetWindowAttributes viewAttrib;
-  XSizeHints           titleSizeHints,viewSizeHints;
-  Window               viewTitleWindow,viewGraphWindow;
-  XColor               foreColor, backColor;
-
-#ifdef DEBUG
-  fprintf(stderr,"view2d: About to make a viewport\n");
-#endif
-
-  /* Create a viewport */
-  if (!(viewport = (viewPoints *)malloc(sizeof(viewPoints)))) {
-    fprintf(stderr,"Ran out of memory (malloc) trying to create a 
viewport.\n");
-    sleep(5);
-    exitWithAck(RootWindow(dsply,scrn),Window,-1);
-  }
-
-#ifdef DEBUG
-  fprintf(stderr,"view2d: Made a viewport\n");
-#endif
-
-  strcpy(viewport->title,title); 
-
-  viewport->closing      = no;
-  viewport->allowDraw    = yes;   /* just draw axes the first time around */
-  viewport->axesOn   = axesON;
-  viewport->unitsOn  = unitsON;
-  viewport->pointsOn = pointsON;
-  viewport->linesOn  = connectON;
-  viewport->splineOn = splineON;
-
-  /**** Make the windows for the viewport ****/
-  spadbits = XCreateBitmapFromData(dsply,rtWindow,
-                                   spadBitmap_bits,
-                                   spadBitmap_width,spadBitmap_height);
-  spadmask = XCreateBitmapFromData(dsply,rtWindow,
-                                   spadMask_bits,
-                                   spadMask_width,spadMask_height);
-  viewAttrib.background_pixel = backgroundColor;
-  viewAttrib.border_pixel = foregroundColor;
-  viewAttrib.override_redirect = overrideManager; 
-  viewAttrib.colormap = colorMap;
-
-  foreColor.pixel = foregroundColor;
-  backColor.pixel = backgroundColor;
-  XQueryColor(dsply,colorMap,&foreColor);
-  XQueryColor(dsply,colorMap,&backColor);
-  viewAttrib.cursor = XCreatePixmapCursor(dsply,spadbits,spadmask,
-                 &foreColor,&backColor,spadBitmap_x_hot,spadBitmap_y_hot);
-
-  viewAttrib.event_mask = titleMASK;
-  if (vW) {
-    titleSizeHints.flags  = PPosition | PSize;
-    titleSizeHints.x      = vX;
-    titleSizeHints.y      = vY;
-    titleSizeHints.width  = vW;
-    titleSizeHints.height = vH;
-  } else {
-    titleSizeHints.flags  = PSize;
-    titleSizeHints.width  = viewWidth;
-    titleSizeHints.height = viewHeight;
-  }
-
-  viewTitleWindow = XCreateWindow(dsply,rtWindow,vX,vY,vW,vH,
-                                 viewBorderWidth,
-                                 CopyFromParent,InputOutput,CopyFromParent,
-                                 viewportTitleCreateMASK,&viewAttrib);
-
-  wm_delete_window = XInternAtom(dsply, "WM_DELETE_WINDOW", False);
-  (void) XSetWMProtocols(dsply, viewTitleWindow, &wm_delete_window, 1);
-
-  XSetNormalHints(dsply,viewTitleWindow,&titleSizeHints); 
-  XSetStandardProperties(dsply,viewTitleWindow,"AXIOM 2D",viewport->title,
-                          None,NULL,0,&titleSizeHints);
-
-  viewport->titleWindow = viewTitleWindow;
-  viewAttrib.event_mask = viewportMASK; 
-  viewSizeHints.flags   = PPosition | PSize;
-  viewSizeHints.x       = -viewBorderWidth;
-  viewSizeHints.y       = titleHeight;
-  viewSizeHints.width   = titleSizeHints.width;
-  viewSizeHints.height  = titleSizeHints.height - 
-                          (titleHeight + appendixHeight);
-  viewGraphWindow = XCreateWindow(dsply,viewTitleWindow,
-                                 viewSizeHints.x,viewSizeHints.y,
-                                 viewSizeHints.width,viewSizeHints.height,
-                                 viewBorderWidth,
-                                 CopyFromParent,InputOutput,CopyFromParent,
-                                 viewportCreateMASK,&viewAttrib);
-  XSetNormalHints(dsply,viewGraphWindow,&viewSizeHints);
-  XSetStandardProperties(dsply,viewGraphWindow,"2D Viewport","2D Viewport",
-                        None,NULL,0,&viewSizeHints); 
-
-  viewport->viewWindow = viewGraphWindow;
-
-  /*Make the control panel for the viewport. */
-  viewport->controlPanel = makeControlPanel();        
-  if ((viewport->haveControl = showCP)) putControlPanelSomewhere(anywhere);
-
-  XSync(dsply,False); 
-  return(viewport);
-
-}
-
-
-/*********************************************
- *****  viewPoints *makeView2D(viewdata)  ****
- *********************************************/
-
-
-viewPoints *
-makeView2D(view2DStruct *viewdata)
-{
-  viewPoints *vPoints;  
-
-  vPoints = makeViewport(viewdata->title, viewdata->vX,viewdata->vY,
-                         viewdata->vW,viewdata->vH,viewdata->showCP);
-
-  vPoints->allowDraw = yes;   /* draw everything from now on */
-
-  if (viewdata->showCP) clearControlMessage();
-
-  writeTitle(); 
-
-  XMapWindow(dsply,vPoints->viewWindow);
-  XMapWindow(dsply,vPoints->titleWindow);
-  XSync(dsply,0);
-
-  drawViewport(Xoption);      /* draw viewport with X routines (as opposed to 
PS) */
-  return(vPoints);
-
-}    /* makeView2D */
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
diff --git a/src/graph/view2d/write2d.c.pamphlet 
b/src/graph/view2d/write2d.c.pamphlet
deleted file mode 100644
index 4e089c2..0000000
--- a/src/graph/view2d/write2d.c.pamphlet
+++ /dev/null
@@ -1,219 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/view2d write2d.c}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    - Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    - Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the
-      distribution.
-
-    - Neither the name of The Numerical ALgorithms Group Ltd. nor the
-      names of its contributors may be used to endorse or promote products
-      derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-@
-<<*>>=
-<<license>>
-
-#define _WRITE2D_C
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "header2.h"
-#include "write.h"
-
-#include "all-2d.h1"
-#include "pixmap.h1"
-#include "gfun.h1"
-
-
-#define numBits (8*sizeof(int))
-
-int 
-writeViewport(int thingsToWrite)
-{
-
-  FILE              *viewDataFile;
-  char              viewDirName[80],
-                    viewBitmapFilename[80],viewDataFilename[80],command[80];
-  int               i,j,k,code,ii;
-  pointListStruct   *aList;
-  pointStruct       *aPoint;
-  XWindowAttributes vwInfo;
-
-  XGetWindowAttributes(dsply,viewport->titleWindow,&vwInfo);
-  sprintf(viewDirName,"%s%s",filename,".view"); 
-  sprintf(command,"%s%s%s","rm -r ",viewDirName," >  /dev/null 2>&1");
-  code = system(command);
-  sprintf(command,"%s%s%s","mkdir ",viewDirName," > /dev/null 2>&1");
-  if (system(command)) {
-    fprintf(stderr,"   Error: Cannot create %s\n",viewDirName);
-    return(-1);
-  } else {
-            /*** Create the data file ***/
-    sprintf(viewDataFilename,"%s%s",viewDirName,"/data");
-    if ((viewDataFile = fopen(viewDataFilename,"w")) == NULL) {
-      fprintf(stderr,"   Error: Cannot create %s\n",viewDataFilename);
-      perror("fopen");
-      return(-1);
-    } else {
-              /*** write out the view2DStruct stuff ***/
-      fprintf(viewDataFile,"%d\n",view2DType);
-      fprintf(viewDataFile,"%s\n",viewport->title);
-      fprintf(viewDataFile,"%d %d %d %d\n",vwInfo.x,vwInfo.y,
-             vwInfo.width,vwInfo.height);
-      for (i=0; i<maxGraphs; i++) {
-        fprintf(viewDataFile,"%d\n",graphArray[i].key);
-        fprintf(viewDataFile,"%g %g\n",
-                graphStateArray[i].scaleX,graphStateArray[i].scaleY);
-        fprintf(viewDataFile,"%g %g\n",
-                graphStateArray[i].deltaX,graphStateArray[i].deltaY);
-        fprintf(viewDataFile,"%g %g\n",
-                graphStateArray[i].centerX,graphStateArray[i].centerY);
-        fprintf(viewDataFile,"%d %d %d %d %d %d %d\n",
-                graphStateArray[i].pointsOn,graphStateArray[i].connectOn,
-                graphStateArray[i].splineOn,
-                graphStateArray[i].axesOn, graphStateArray[i].axesColor,
-                graphStateArray[i].unitsOn, graphStateArray[i].unitsColor);
-        fprintf(viewDataFile,"%d %d\n",
-                graphStateArray[i].showing,graphStateArray[i].selected);
-      }
-      fclose(viewDataFile);
-      for (i=0; i<maxGraphs; i++) {
-        if (graphArray[i].key) {
-          sprintf(viewDataFilename,"%s%s%d",viewDirName,"/graph",i);
-          if ((viewDataFile = fopen(viewDataFilename,"w")) == NULL) {
-            fprintf(stderr,"   Error: Cannot create %s\n",viewDataFilename);
-            perror("fopen");
-            return(-1);
-          } else {
-            fprintf(viewDataFile,"%g %g %g %g\n",
-                    graphArray[i].xmin,graphArray[i].ymin,
-                   graphArray[i].xmax,graphArray[i].ymax);
-            fprintf(viewDataFile,"%g %g\n",
-                    graphArray[i].xNorm,graphArray[i].yNorm);
-            fprintf(viewDataFile,"%g %g\n",
-                    graphArray[i].originX,graphArray[i].originY);
-            fprintf(viewDataFile,"%g %g\n",
-                    graphArray[i].spadUnitX,graphArray[i].spadUnitY);
-            fprintf(viewDataFile,"%g %g\n",
-                    graphArray[i].unitX,graphArray[i].unitY);
-            fprintf(viewDataFile,"%d\n",graphArray[i].numberOfLists);
-            for (j=0,aList=graphArray[i].listOfListsOfPoints;
-                 j<graphArray[i].numberOfLists;
-                 j++, aList++) {
-              fprintf(viewDataFile,"%d\n",aList->numberOfPoints);
-              fprintf(viewDataFile,"%d %d %d\n",
-                      aList->pointColor,aList->lineColor,aList->pointSize);
-              for (k=0,aPoint=aList->listOfPoints;
-                   k<aList->numberOfPoints; 
-                   k++,aPoint++)
-                fprintf(viewDataFile,"%g %g %g %g\n",
-                        aPoint->x,aPoint->y,aPoint->hue,aPoint->shade);
-            } /* for j, aList */            
-            fclose(viewDataFile);
-          } /* else graph i */
-        } /* if */
-      } /* for */
-    } /* else */
-
-           /* write out special files */
-    for (ii=1; ii<numBits; ii++) {   /* write.h is one-based */
-      if (thingsToWrite & (1<<ii)) {
-        switch (ii) {
-        case Pixmap:
-            /*** Create the pixmap (bitmaps need leaf name) ***/
-          sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.xpm");
-          XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo);
-          write_pixmap_file(dsply,scrn,viewBitmapFilename,
-                                  viewport->titleWindow,0,0,vwInfo.width,
-                                  vwInfo.height+titleHeight);
-          break;
-        case Bitmap:
-            /*** Create the bitmap (bitmaps need leaf name) ***/
-          sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.bm");
-          XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo);
-          code = XWriteBitmapFile(dsply,viewBitmapFilename,
-                                 viewport->titleWindow,vwInfo.width,
-                                 vwInfo.height+vwInfo.border_width+20,-1,-1);
-          break;
-        case Image:
-            /*** Create the pixmap (bitmaps need leaf name) ***/
-          sprintf(viewBitmapFilename,"%s%s",viewDirName,"/image.xpm");
-          XResizeWindow(dsply,viewport->titleWindow,300,300+titleHeight);
-          XResizeWindow(dsply,viewport->viewWindow,300,300);
-          XGetWindowAttributes(dsply,viewport->viewWindow,&vwInfo);
-          drawViewport(Xoption);
-          writeTitle();
-          write_pixmap_file(dsply,scrn,viewBitmapFilename,
-                                  viewport->titleWindow,0,0,vwInfo.width,
-                                  vwInfo.height+titleHeight);
-            /*** Create the bitmap (bitmaps need leaf name) ***/
-          mono = 1;
-          drawViewport(Xoption);
-          writeTitle();
-          sprintf(viewBitmapFilename,"%s%s%s",viewDirName,"/","image.bm");
-          code = XWriteBitmapFile(dsply,viewBitmapFilename,
-                                 viewport->titleWindow,vwInfo.width,
-                                 vwInfo.height+vwInfo.border_width+20,-1,-1);
-          mono = 0;
-          break;
-
-        case Postscript:
-            /*** Create postscript output for viewport (in axiom2d.ps) ***/
-         sprintf(PSfilename,"%s%s",viewDirName,"/axiom2d.ps");
-         if (PSInit(viewport->viewWindow,viewport->titleWindow) == psError)
-          return (-1);
-         drawViewport(PSoption);  /* write new script file in /tmp */
-         if (PSCreateFile(viewBorderWidth,viewport->viewWindow,
-                         viewport->titleWindow, viewport->title) == psError)
-           return(-1);         /* concat script & proc into axiom2d.ps */
-          break;
-
-        } /* switch on ii */
-      }  /* if thingsToWrite >> ii */
-    }  /* for ii */
-
-    return(0);
-  }    /* else create directory okay */
-
-}
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]