[comp.sources.x] v12i039: tgif, Part23/23

william@CS.UCLA.EDU (William Cheng) (03/14/91)

Submitted-by: william@CS.UCLA.EDU (William Cheng)
Posting-number: Volume 12, Issue 39
Archive-name: tgif/part23

---------------------------------> cut here <---------------------------------
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 23 (of 23)."
# Contents:  prtgif.man tgif.man tgif2ps.man example.tex
#   an-sr-flip-flop.obj fonts.obj slide-demo.obj flip-flop.sym
#   nand2.sym pin.sym tangram.sym
# Wrapped by william@oahu on Wed Mar  6 09:58:22 1991
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'prtgif.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'prtgif.man'\"
else
echo shar: Extracting \"'prtgif.man'\" \(1561 characters\)
sed "s/^X//" >'prtgif.man' <<'END_OF_FILE'
X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/prtgif.man,v 2.0 91/03/05 12:50:39 william Exp $
X.TH PRTGIF 1 "Version 2.0 or above" "PrTgif"
X.SH NAME
X\fIprtgif\fR - Prints a \fItgif\fR object file without opening windows
Xor fonts.
X.SH SYNOPSIS
X.B prtgif
X[\fB-eps\fR]
X[\fB-p\fR]
X[\fB-ps\fR]
X[\fB-f\fR]
X[\fIfile1\fR \fIfile2\fR ...]
X.SH DESCRIPTION
X\fIprtgif\fR prints \fIfile.obj\fR (generated by \fItgif\fR)
Xinto a PostScript(TM) page description file
Xand pipes it to \fIlpr\fR if none of the
X\fB-eps\fR, \fB-p\fR, \fB-ps\fR, or \fB-f\fR options are not specified;
Xin this case, any other command line options are sent to \fIlpr\fR.
X.PP
XIf the \fB-eps\fR or the \fB-p\fR option is specified,
Xit generates an encapsulated PostScript file in \fIfile.eps\fR;
Xthis file is supposed to be included in a LaTeX file through the
X\\psfig, \\epsf, or \\psfile construct (see the man pages of
X\fItgif\fR for details).
XIf the \fB-ps\fR or the \fB-f\fR option is specified,
Xit generates a PostScript file in \fIfile.ps\fR;
Xthis file can be printed to a PostScript printer with lpr.
X(Note that if any of the \fB-eps\fR, \fB-p\fR, \fB-ps\fR, or \fB-f\fR
Xoptions are specified,
Xany other command line options are ignored.)
X.PP
XNote that prtgif is no longer calling \fItgif2ps\fR.
XAlso note that while tgif can generate X11 bitmap or X11 pixmap files,
Xprtgif can not.
X.SH SEE ALSO
X\fBlpr\fR(1), \fBtgif\fR(1), \fBlatex\fR(1L)
X.SH COPYRIGHT
XPlease see the ``Copyright'' file for details on the copyrights.
X.SH AUTHOR
XWilliam Chia-Wei Cheng (william@cs.ucla.edu)
END_OF_FILE
if test 1561 -ne `wc -c <'prtgif.man'`; then
    echo shar: \"'prtgif.man'\" unpacked with wrong size!
fi
# end of 'prtgif.man'
fi
if test -f 'tgif.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'tgif.man'\"
else
echo shar: Extracting \"'tgif.man'\" \(22597 characters\)
sed "s/^X//" >'tgif.man' <<'END_OF_FILE'
X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tgif.man,v 2.0 91/03/05 12:50:40 william Exp $
X.TH TGIF 1 "Version 2.0 and Above" "Tgif"
X.SH NAME
X\fItgif\fR \- Xlib based 2-D drawing facility under X11.  Also supports
Xhierarchical construction of drawings.
X.SH SYNOPSIS
X.B tgif
X[\fB=Geometry\fR] 
X[\fIfile\fR]
X.SH DESCRIPTION
X\fITgif\fR is an interactive drawing tool that allows the user to draw and
Xmanipulate objects in the X Window System.
XThe command line argument \fIfile\fR
Xspecifies a file of objects to be initially edited by tgif.
XTgif is purely based on \fIXlib\fR.
XIt is tested under X11-R4, and
Xit requires a 3 button mouse.
X.PP
XPrimitive objects supported by tgif
Xare rectanges, ovals, rounded-corner rectangles, arcs,
Xpolylines, polygons, open-splines, closed-splines, X11 bitmaps,
Xand text.  Objects can be grouped together to form a \fIgrouped\fR object.
XA grouped object can be made into an \fIicon\fR object or a
X\fIsymbol\fR object through user commands.  (Grouped, icon, and symbol
Xobjects are also refered to as \fIcomplex\fR objects.)
X.PP
XTgif objects are stored in two types of files.  A file with a
X.I \.obj
Xextension (refered to as an \fIobject\fR file)
Xis a file of objects, and a file with a
X.I \.sym
Xextension (refered to as a \fIsymbol\fR file)
Xspecifies a ``building-block'' object.
XA building-block object consists of the
X\fIrepresentation\fR part and the \fIdefinition\fR
Xpart of the object.
XTgif supports the ``bottom-up'' construction of hierarchical
Xdrawings by providing the capability to ``instantiate'' a
Xbuilding-block object in a drawing.  Tgif also supports the ``top-down''
Xspecification of drawings by allowing the user to make any
Xcomplex object the \fIrepresentation\fR
Xof an un-specified subsystem.  Both types of files are stored in the
Xform of Prolog facts.  Prolog code can be written to interpret
Xthe drawings!  (It is left to the user to produce this code.
XSee \fItgif.pl\fR for hints.)  Prolog engines will be refered to as
X\fIdrivers\fR in the sections follows.
X.PP
X\fIAttributes\fR can be attached to any non-text
Xobjects.
XAttributes specified in the representation part of a
Xbuilding-block object are non-detachable, when such an object is instantiated.
XSee \fBATTRIBUTES\fR section for details.
X.PP
XTgif can generate outputs in three different format.
XBy default, the output is in PostScript(TM) format (color PostScript
Xis supported), and it is generated in to a file named
X/tmp/Tgifa* (produced by mktemp() calls) where * is a number
Xand this file is piped to lpr.  This takes place when the
Xlaser-printer icon is displayed in the Choice Window (see below
Xfor the naming of tgif windows).
XThis output can be redirected to a file with a
X.I \.ps
Xextension.  This takes place when the \fIPS\fR icon is displayed.
XWhen the \fILaTeX\fR icon is display, the output generated with the
X.I \.eps
Xextension, and the file is in
Xthe encapsulated PostScript format.
XThis file can be included in a LaTeX document with the
X\fIpsfig\fR or \fIepsf\fR construct; this will be discussed later.
XWhen the \fIx11bm\fR (X11 bitmap) icon is displayed in the
XChoice Window and color output is \fInot\fR selected,
Xtgif generates the output with the
X.I \.xbm
Xextension, and the output is in the X11 bitmap format.
XHowever, if the \fIx11bm\fR (X11 bitmap) icon is displayed in the
XChoice Window and color output \fIis\fR selected (through the ^#K
Xkeyboard command),
Xtgif generates the output with the
X.I \.xpm
Xextension, and the output is in the X11 pitmap format.
XAn X11 bitmap file can be \fIimported\fR into tgif and be represented
Xas an tigf primitive object.
X.SH GRAPHICAL OBJECTS
XAn object in an \fIobject\fR file can be a primitive object, a grouped
Xobject, or an \fIicon\fR object.
XA \fIsymbol\fR file is an object file with exactly one \fIsymbol\fR
Xobject.  (Recall that a symbol file specifies a building-block
Xobject.)  The symbol object in a symbol file is the representation
Xpart of the building-block object, and the rest of the
Xsymbol file is the definition
Xpart of the building-block object.  The symbol object is highlighted
Xwith a dashed outline to distinguished it from the rest of
Xthe objects.  When a building-block object is instantiated,
Xthe symbol part of the file is copied into the graphics editor and becomes
Xthe icon for the building-block object.
X.PP
XAll objects in tgif can be moved, duplicated, deleted, rotated, 
Xand flipped.  (However, flipping text objects horizontally will
Xcause the text justification to change, and flipping text objects
Xvertically will usually cause the text object to move.)
XAll objects except text, bitmap, and icon objects can be stretched
X(scaled).
X.PP
XTgif supports 20 fill patterns, 20 pen patterns, 7 line widths, 4 line
Xstyles (plain, head arrow, tail arrow, double arrows) for
Xpolyline and open-splines, 5 dash patterns,
X3 types of text justifications, 4 text
Xstyles (roman, itatlic, bold, bold-italic), 12 text sizes
X(8, 10, 12, 14, 18, and 24 for the 75dpi fonts and
X11, 14, 17, 20, 25, and 34 for the 100dpi fonts), 5 fonts (Times, Courier,
XHelvetica, New-Century-Schoolbook, Symbol), and 10 default colors (magenta,
Xred, green, blue, yellow, pink, cyan, cadet-blue, white, black).
XOnly right-angle rotations are supported.
XMost commands in tgif can either be activated by a
Xpop-up menu or by typing an appropriate
Xnon-alphanumeric key.
X.SH TGIF SUBWINDOWS
XThe tgif windows are described below.
X.TP
X.I Top Window
XDisplays the name of the file tgif is looking at.  Mouse clicks
Xand key presses have no effect.
X.TP
X.I Message Window
XThis is right under the top window on the left.
XIt displays tgif messages.  Clicking the left mouse button
Xin this window scrolls
Xthe messages towards the bottom, clicking the right mouse
Xbutton scrolls towards
Xthe top, and clicking hte middle mouse button scrolls
Xto the location in the
Xmessage history depending on where the mouse is clicked.
X.TP
X.I Panel (Choice) Window
XThis is the window to the right of the message window.
XIt displays the current choice (in top/bottom, left/right order) of the
Xdrawing mode, color, horizontal alignment (L C R -),
Xvertical alignment (T M B -),
Xtext justification, font, text rotation, special (see below),
Xline width, line style,
Xpoly or spline, dash pattern, print mode, file (see below),
Xfill pattern, and pen pattern.
XKey presses have no effect in this window.
X.PP
X.RS
XThe ``special'' and ``file'' mentioned above are dummy icons
Xthat allow the ``special'' menu and the ``file'' menu to be
Xaccesses in the Choice Window.
X.PP
XLeft mouse button advances a particular choice; right mouse button
Xadvances in the reverse direction, and the middle button generates a pop-up
Xmenu to set a particular choice.  If there are objects selected in the
Xcanvas window, then the action of the mouse will cause the selected
Xobjects to change to the newly selected choice; note that in this
Xcase, the current choice won't change if the middle button
Xis used; also, icon objects
Xwill not change because they should be thought of as ``bitmaps''.
X.PP
XThe settings of the horizontal and vertical
Xalignments determine how objects align with
Xeach other when the ^L keyboard command is issued, they
Xdetermine how each individual object aligns with the grids
Xwhen the ^T keyboard command is issued, and they
Xdetermine how each icon replaces the old icion when the ^#U
Xkeyboard comand is issued.  The horizontal
Xalignments are left (L), center (C), right (R), and ignore (-).
XThe vertical alignments are top (T), middle (M), bottom (B), and
Xignore (-).  The best way to understand them is to try them out.
X.RE
X.TP
X.I Canvas Window
XThis is the drawing area.  Left mouse button selects, moves, stretches,
Xand reshapes objects.
XHolding down the shift key and clicking the left mouse
Xon an object which is not currently selected will add the
Xobject to the list of already selected objects.  The same
Xaction applied to an object which is already selected will cause
Xit to be de-selected.
XWhen the drawing mode is set to
Xtext, clicking left mouse button causes selected text to go into edit mode.
XIn the text edit mode, clicking the middle mouse button highlights sub-strings
Xof the text.
XRight mouse button always generates the main
Xtgif pop-up menu.  Holding down the shift key and clicking the right
Xmouse button will change the drawing mode to \fIselect\fR.
XNon-alphanumeric key presses are treated as tgif commands, and their
Xbindings are summarized in the following section.
X.TP
X.I Scrollbars
XOnly the left mouse button has effect in the scrollbar windows.
XClicking the left mouse button in the arrow portion of a scrollbar
Xwindow causes the canvas window to scroll a small distance on the page,
Xand clicking in the main area of the scrollbar window causes the
Xpage to scroll to the specified location from the
Xtop or the left of the page.
X.TP
X.I Rulers
X.br
XThey track the mouse location.
XMouse clicks and key presses have no effect.
X.SH NON-ALPHANUMERIC KEY BINDINGS
XWe use ``^'' for the control key and ``#'' for the meta key in the following
Xdescription.
X.PP
X.DS
X  ^A	select all\br
X  ^B	send selected objects to the back\br
X  ^C	change domain\br
X  ^D	duplicate selected objects\br
X  ^F	send selected objects to the front\br
X  ^G	group selected objects\br
X  ^I	instantiate a building-block object\br
X  ^K	pop back to (or return to) a higher level and close the symbol file
X(reverse of ^V)\br
X  ^L	align selected objects\br
X  ^N	open a new un-named object file\br
X  ^O	open an object file to edit\br
X  ^P	print the current page\br
X  ^Q	quit tgif\br
X  ^R	redraw the page\br
X  ^S	save the current object or symbol file\br
X  ^T	align selected objects to the grid\br
X  ^U	ungroup selected objects\br
X  ^V	push into (or edit) the definition part of a building-block object
X(selected object just be an icon object)\br
X  ^W	change the drawing mode to text\br
X  ^X	delete all selected objects\br
X  ^Y	copy selected object to cut buffer\br
X  ^Z	escape to driver\br
X  ^,	scroll left\br
X  ^.	scroll right\br
X  ^-	print the current page with a specified command\br
X\br
X  #A	attach selected attributes to the selected complex object\br
X  #B	escape to driver\br
X  #C	rotate selected objects counter-clockwise\br
X  #D	decrement grid size\br
X  #E	send a token on a selected polyline\br
X  #F	flash the selected polyline\br
X  #G	show/un-show grid points\br
X  #H	flip the selected object horizontally\br
X  #I	increment the grid size\br
X  #J	hide attribute names of the selected objects\br
X  #K	change the drawing mode to select\br
X  #L	give the line style and line width pop-up menu\br
X  #M	move the attributes of a selected object\br
X  #N	show all attribute names of the selected objects\br
X  #O	zoom out\br
X  #P	import a .obj file into the current file\br
X  #Q	change the drawing mode to polyline/open-spline\br
X  #R	change the drawing mode to rectangle\br
X  #S	escapt to driver\br
X  #T	detach the attributes of the selected objects\br
X  #U	undo the previous delete operation\br
X  #V	flip the selected object vertically\br
X  #W	rotate the selected objects clockwise\br
X  #X	escape to driver\br
X  #Y	escape to driver\br
X  #Z	zoom in\br
X  #0	change the font size to 8 (11)\br
X  #1	change the font size to 10 (14)\br
X  #2	change the font size to 12 (17)\br
X  #3	change the font size to 14 (20)\br
X  #4	change the font size to 18 (25)\br
X  #5	change the font size to 24 (34)\br
X  #,	scroll up\br
X  #.	scroll down\br
X\br
X ^#A	add points to the selected poly or spline\br
X ^#B	change the text style to bold\br
X ^#C	change the text justification to center justified\br
X ^#D	delete points from the selected poly or spline\br
X ^#E	change the drawing mode to rounded-corner rectangles\br
X ^#F	invert selected bitmap objects\br
X ^#G	toggle snapping to the grid points\br
X ^#I	make the selected complex object iconic\br
X ^#J	make the selected icon object a grouped object\br
X ^#K	select color or black-and-white output\br
X ^#L	change the text justification to left justified\br
X ^#M	make the selected complex object symbolic\br
X ^#N	make the selected symbolic object a grouped object\br
X ^#O	change the text style to roman\br
X ^#P	change the text style to bold-italic\br
X ^#Q	change the drawing mode to polygon/closed-spline\br
X ^#R	change the text justification to right justified\br
X ^#S	save the file under a new name\br
X ^#T	change the text style to italic\br
X ^#U	update iconic representations of selected objects\br
X ^#V	change the drawing mode to oval\br
X ^#W	toggle between poly and spline\br
X ^#X	rotate among the various output file formats\br
X ^#Y	paste from the cut buffer\br
X ^#Z	change the drawing mode to arcs\br
X ^#.	import a X11 bitmap file\br
X.DE
X.br
X.SH ATTRIBUTES
XAttributes are text strings of the form \fIname=value\fR or \fIvalue\fR
Xwhich are attached to any non-text objects.
XAttributes can be attached and detached from these objects
Xexcept in the following case:
X.IP
XAttributes of a symbol object in a building-block object file can not
Xbe detached when the building-block object is instantiated.
XThese attributes are considered to be the ``inherited'' attributes
Xof the icon object.
X.PP
XThe user has control over which part of an attribute is displayed.
XAn entire attribute can be made invisible, or only its name
Xcan be made invisible (accomplished through the #M command).
X.SH DOMAINS
XA \fIdomain\fR is a collection of library symbols suitable for
Xinstantiations.  A library is implemented as a directoy of .sym files,
Xand therefore, a domain is implemented as a search path.
XIf there are symbols with the same file names but reside
Xin different directories specified in the search path, then
Xthe one closer to the front of the search path will be made
Xavailable for the user to instantiate.
X.PP
XThe number of domains is be specified by the MaxDomains X default,
Xand the names of the domains are specified by the Domain# X default.
XThe library search paths are specified by csh environment variables.
XSee the section on X DEFAULTS and ENVIRONMENT VARIABLES for more details.
X.SH HOW TO MAKE A BUILDING-BLOCK OBJECT (SYMBOL FILE)
XHere are the steps for defining a building-block object, to be used
Xin a hierarchical design.
X.IP 1)
XDraw the representation part of the building-block object.  Group everything
Xtogether.  Select this grouped object.
X.IP 2)
XPop-up the main menu with the right mouse button; select ``Special''.
XSelect ``MakeSymbolic'' from the next pop-up menu.
XThe selected object becomes a symbol and gets a dashed boundary.
X.IP 3)
XType in attributes as individual text strings.  Select the
Xsymbol object and all the
Xtext strgings to be attached to the symbol.  Type #A (for \fIAttach\fR)
Xto attach attributes to the symbol.
X.IP 4)
XBuild the definition part of the building-block object.  Look at the
X``flip-flop.sym'' file for an example.  To look at that file, first,
Xinstantiate a ``flip-flop'' by typing ^I (for \fIInstantialte\fR).
XSelect the flip-flop from
Xthe pop-up window; place the flip-flop; select the flip-flop and
Xtype ^V (for \fIPush\fR) to see the symbol file.
X.IP 5)
XSave and name the file.
X.SH LATEX FIGURE FORMATS
XHere we show how to make a figure for a LaTeX file, first with
Xthe \fIpsfig\fR (or \fIepsf\fR) special construct, then with the
X\fIpsfile\fR special construct.  (The author does not recommand
Xthe \fIpsfile\fR construct.)  An example of both can be found
Xin ``example.tex'' included with this distribution.
X.PP
XTo print a tgif file to be included in a LaTeX document with
Xthe \fIpsfig\fR or \fIepsf\fR special construct
X(files generated will be in the
X\fIencapsulated PostScript\fR format), first
Xselect LaTeX format in the panel window (click the left mouse
Xbutton on the laser printer icon), then type ^P to generate
Xthe encapsulated PostScript file.
XIf the file name is ``an-sr-flip-flop.obj'',
Xthen the LaTeX figure file generated will be named
X``an-sr-flip-flop.eps''.  This file can be included in a LaTeX
Xdocument as follows,
X.PP
X.DS I
X\\begin{figure*}[htb]
X.br
X\\input{psfig}
X.br
X\\centerline{\\psfig{figure=an-sr-flip-flop.eps}}
X.br
X\\caption{An SR flip-flop.  \\label{fig:an-sr-flip-flop}}
X.br
X\\end{figure*}
X.br
X.DE
X.br
X.PP
XAn alternative way is to use the \fIepsf\fR construct as follows,
X.PP
X.DS I
X\\begin{figure*}[htb]
X.br
X\\input{epsf}
X.br
X\\centerline{\\epsffile{an-sr-flip-flop.eps}}
X.br
X\\caption{An SR flip-flop.  \\label{fig:an-sr-flip-flop}}
X.br
X\\end{figure*}
X.br
X.DE
X.br
X.PP
XThe \\centerline command above centers the picture.
XIf you have multiple tgif figures in your LaTeX document,
Xyou only have to include the psfig macro (\\input{psfig} or \\input{epsf})
Xonce right after
X\\begin{document}.  Then within each figure environment,
Xyou wouldn't need the \\input{psfig} (or \\input{epsf} line.
X.PP
XIf encapsulated PostScript is not desired, the \fIpsfile\fR
Xspecial construct can be used as described here.
XFirst, center the picture
Xon the page (e.g., the width of a portrait style page is 7.5 inch, so the
Xcenter of the page is at the 3.75 inch mark),
Xand make the top object on the page as close to
Xthe top of the page as possible.
XSelect LaTeX format in the panel window,
Xthen print in the LaTeX format.
XSame as with the \fIpsfig\fR construct, a file with the \fI.eps\fR
Xextention will be generated.
XThis file can be included in a LaTeX document as follows,
X.PP
X.DS I
X\\begin{figure*}[htb]
X.br
X\\special{psfile="an-sr-flip-flop.eps" hoffset=-40}
X.br
X\\rule{0in}{1.1in}
X.br
X\\caption{An SR flip-flop.  \\label{fig:an-sr-flip-flop}}
X.br
X\\end{figure*}
X.br
X.DE
X.br
X.PP
XThe \\rule{0in}{1.1in} above specifies an invisible box of 1.1 inches
Xhigh, which is the total height of the picture in an-sr-flip-flop.
X.SH X DEFAULTS
X.TP
X.I Tgif*Geometry: WIDTHxHEIGHT+X+Y
X.TP
X.I Tgif*IconGeometry: +X+Y
X.TP
X.I Tgif*Foreground: COLORSTRING
X.TP
X.I Tgif*Background: COLORSTRING
X.TP
X.I Tgif*BorderColor: COLORSTRING
X.TP
X.I Tgif*ReverseVideo: [on,off]
XFor black and white terminal, reverse video ``on'' means the background
Xis black.  For color terminal, reverse video ``on'' means the background
Xis specified by the Tgif*Foreground color.
X.TP
X.I Tgif*InitialFont: [Times,Courier,Helvetica,NewCentury,Symbol]
XThis specified the initial font.
XThe default is Courier.
X.TP
X.I Tgif*InitialFontStyle: [Roman,Bold,Italic,BoldItalic]
XThis specified the initial font style.
XThe default is Roman.
X.TP
X.I Tgif*InitialFontJust: [Left,Center,Right]
XThis specified the initial font justification.
XThe default is Left.
X.TP
X.I Tgif*InitialFontDPI: [75,100]
XThis specified the initial font DPI (dots-per-inch).
XThe default is 75.
X.TP
X.I Tgif*InitialFontSizeIndex: [0,1,2,3,4,5]
XThis specified the initial size \fIindex\fR of the start-up font.
XFor the 75dpi font, the indices correspond to point sizes
X8, 10, 12, 14, 18, and 24.
XFor the 100dpi font, the indices correspond to point sizes
X11, 14, 17, 20, 25, 34.
XThe default is 4 (18 points) for the 75dpi font and 2 (17 points)
Xfor the 100dpi font.
X.TP
X.I Tgif*MaxColors: NUMBER
XThis specified the maximum number of colors.  Color0 through ColorMax,
Xwhere Max is NUMBER-1, and they all must exist in .Xdefaults.
X.TP
X.I Tgif*Color#: COLORSTRING
XThis specified the correspondance between the color number and a color.
X.TP
X.I Tgif*DefaultColorIndex: NUMBER
XThis specified the default color index if certain color can not be found.
XDefault is 0.
X.TP
X.I Tgif*PrintCommand: COMMAND
XThis specified the print command used for printing the PostScript file.
XDefault is \fIlpr\fR (without any quotes).  An example would be
X\fIlpr -h -Pprintername\fR.
X.TP
X.I Tgif*Synchronize: [on,off]
XXSynchronize is called if this default is set to \fIon\fR.  Default is
X\fIoff\fR.
X.TP
X.I Tgif*DoubleClickInterval: NUMBER
XThis specifies the maximum interval (in milli-seconds)
Xbetween two clicked to be recognized as one double-click.
XDefault is 300.
X.TP
X.I Tgif*MaxDomains: NUMBER
XThis specified the maximum number of domains.  Domain0 through DomainMax,
Xwhere Max is NUMBER-1, and they all must exist in .Xdefaults.
X.TP
X.I Tgif*Domain#: DOMAINSTRING
XThis specified the correspondance between the domain number and a domain name.
XSee the ENVIRONMENT VARIABLE section to see how to specify a path associated
Xwith a domain.
X.TP
X.I Tgif*DefaultDomain: NUMBER
XThis specified the default domain when tgif starts up.
XDefault is 0 if not specified.
X.SH ENVIRONMENT VARIABLE
X.TP
X.I TGIFPATH
XThis environment variable should be set such that the files, mentioned in the
X\fBFILES\fR section below, can be found.
X.TP
X.I TGIFICON
XThis environment variable should be set to the name of the object
Xfile to be displayed when tgif is iconified.  By default, it is
Xset to ``tgificon''.
XIf it starts with a / character, absolute path is used; otherwise,
Xthe icon file is assumed to be $TGIFPATH/$TGIFICON.
X.TP
X.I TGIF_[Domain]
XFor each \fIDomain\fR name defined in the X defaults, \fITGIF_Domain\fR
Xspecifies a search path for the symbol files.  Each search path
Xshould have the same format as the \fIPATH\fR csh environment variable.
XFor example, to specify the symbol path for domain \fIDEFAULT\fR
Xto look for symbol files in the library directory /tmp/tgif/symbols
Xthen in the current directory,
Xthe following command should be executed in csh.
X.PP
X.DS
X.RS
X.RS
Xsetenv TGIF_DEFAULT /tmp/tgif/symbols:.
X.br
X.RE
X.RE
X.DE
X.br
X.SH FILES
X$TGIFPATH/tgificon.obj contains the default tgif icon.
X.br
X.PP
X$TGIFPATH/.psmac contains tgif PostScript macros.
X.br
X.SH SEE ALSO
X\fBlatex\fR(1L), \fBlpr\fR(1), \fBenv\fR(1), \fBX\fR(1),
X\fBdvips\fR(1), \fBcsh\fR(1)
X.SH IDIOSYNCHRASIES
XWhen any of the ``escape to driver'' commands are (accidentally)
Xexecuted, the current content of the drawing is saved into
X``tmpmodel.obj'' if the drawing indicates that it is an .obj file.
XThen tgif escapes to the driver and returns right away.
XIf the drawing indicates that it is a .sym file, then the content
Xis saved into ``tmpmodel.sym'' but tgif does not return to the driver.
X.PP
XThe paste operation works on a cut buffer generated by tgif or by non-tgif
Xtools (such as \fIxterm\fR).
XIf the cut buffer is \fInot\fR generated by tgif, its content is treated as
XASCII character strings, which is inserted into the current drawing
Xas a text object (current settings for text objects are used
Xto create the text object).
XIf the cut buffer \fIis\fR generated by tgif, then all the current
Xsettings are ignored.
X.SH BUGS
XThere seems to be a problem printing certain objects with the
XApple LaserWriter.  Specifically, ovals and Courier fonts
Xwith non-solid pens would not work in color PostScript printing.
XHowever, they work fine with ghostscript and dxpsview.
Xthe Apple LaserWriter.
X.SH COPYRIGHT
XPlease see the ``Copyright'' file for details on the copyrights.
X.SH AUTHOR
XWilliam Chia-Wei Cheng (william@cs.ucla.edu)
END_OF_FILE
if test 22597 -ne `wc -c <'tgif.man'`; then
    echo shar: \"'tgif.man'\" unpacked with wrong size!
fi
# end of 'tgif.man'
fi
if test -f 'tgif2ps.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'tgif2ps.man'\"
else
echo shar: Extracting \"'tgif2ps.man'\" \(1202 characters\)
sed "s/^X//" >'tgif2ps.man' <<'END_OF_FILE'
X.\"@(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tgif2ps.man,v 2.0 91/03/05 12:50:45 william Exp $
X.TH TGIF2PS 1 "Version 1.0" "Tgif2ps"
X.SH NAME
X\fItgif2ps\fR \- Convert the PostScript(TM) output page generated by
X\fItgif\fR into a PostScript file that can be included in a LaTeX
Xdocument with the \fIpsfile\fR special construct.
X.SH SYNOPSIS
X.B tgif2ps
X< /tmp/DRAW.PS > \fIfile.ps\fR
X.SH DESCRIPTION
X\fITgif\fR normally generates a PostScript page description file /tmp/DRAW.PS
Xto be piped to \fIlpr\fR.  This file can not be included
Xin a LaTeX document, which only accepts PostScript instructions.
X\fITgif2ps\fR filters out some header information, some translation/rotation
Xinstructions, and the command to force out a page from the standard
Xinput.  See the tgif man pages for details on how to incorporate
X\fIfile.ps\fR in a LaTeX document.
X
X\fINote:\fR  This program should be installed in the path,
Xsince it is called within tgif when printing into a LaTeX file.
X.SH FILES
X/tmp/DRAW.PS
X.SH SEE ALSO
X\fBlatex\fR(1L), \fBlpr\fR(1), \fBtgif\fR(1)
X.SH COPYRIGHT
XPlease see the ``Copyright'' file for details on the copyrights.
X.SH AUTHOR
XWilliam Chia-Wei Cheng (william@cs.ucla.edu)
END_OF_FILE
if test 1202 -ne `wc -c <'tgif2ps.man'`; then
    echo shar: \"'tgif2ps.man'\" unpacked with wrong size!
fi
# end of 'tgif2ps.man'
fi
if test -f 'example.tex' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'example.tex'\"
else
echo shar: Extracting \"'example.tex'\" \(1754 characters\)
sed "s/^X//" >'example.tex' <<'END_OF_FILE'
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/example.tex,v 2.0 91/03/05 12:50:47 william Exp $
X%
X\documentstyle[12pt]{article}
X%
X\oddsidemargin=0in
X\textwidth=6.5in
X\topmargin=0in
X\textheight=609pt
X\parskip=14pt
X\setlength{\unitlength}{0.5cm}
X\begin{document}
X%
XFigure \ref{fig:psfig} is an example of a tgif \LaTeX\,\, figure printed with
Xthe ``psfig'' macro.  As you can see, the figure fits nicely between the
Xsurrounding text.
X%
X\begin{figure*}[htb]
X\input{psfig}
X\centerline{\psfig{figure=an-sr-flip-flop.eps}}
X\caption{Example Tgif Diagram Printed with ``psfig'' Macro.\label{fig:psfig}}
X\end{figure*}
X%
XThe bounding box seems to be pretty tight.  In
XFigure \ref{fig:epsf} below, the same figure is
Xgenerated with the ``epsf'' construct.
X%
X\begin{figure*}[htb]
X\input{epsf}
X\centerline{\epsffile{an-sr-flip-flop.eps}}
X\caption{Example Tgif Diagram Printed with ``epsf'' Macro.\label{fig:epsf}}
X\end{figure*}
X%
XAll these are just trying the illustrate that the bounding boxes
Xgenerated by tgif is pretty tight, and there's really no need for
Xthe ``psfile'' construct.  I don't know if there are cases where
Xsome documentation generation software only supports the ``psfile''
Xconstruct, but I an putting in the example anyways.
X
XFigure \ref{fig:psfile} is an example of a tgif \LaTeX\,\, figure
Xprinted with the ``psfile'' macro.  Notice the \\rule command.
X%
X\begin{figure*}[htb]
X\special{psfile="an-sr-flip-flop.eps" hoffset=-40}
X\rule{0in}{1.1in}
X\caption{Example Tgif Diagram Printed with ``psfile'' Macro.\label{fig:psfile}}
X\end{figure*}
X%
XIt is reserving a space of 1.1 inch for the figure.  This can
Xbe figured out from the ruler within tgif.  As a general rule,
Xthe ``psfile'' construct should be avoided.
X\end{document}
END_OF_FILE
if test 1754 -ne `wc -c <'example.tex'`; then
    echo shar: \"'example.tex'\" unpacked with wrong size!
fi
# end of 'example.tex'
fi
if test -f 'an-sr-flip-flop.obj' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'an-sr-flip-flop.obj'\"
else
echo shar: Extracting \"'an-sr-flip-flop.obj'\" \(1783 characters\)
sed "s/^X//" >'an-sr-flip-flop.obj' <<'END_OF_FILE'
Xstate(0,10,0,0,0,8,1,6,0,2,0,1,0,0,1,1,0,0,4,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/an-sr-flip-flop.obj,v 2.0 91/03/05 12:50:03 william Exp $
X%
Xicon([
Xgroup([
Xbox('yellow',448,0,512,80,0,0,1,11,0,[
X]),
Xpoly('yellow',2,[424,16,448,16],0,0,1,47,0,0,0,[
X]),
Xpoly('yellow',2,[424,64,448,64],0,0,1,48,0,0,0,[
X]),
Xpoly('yellow',2,[512,16,536,16],0,0,1,49,0,0,0,[
X]),
Xpoly('yellow',2,[512,64,536,64],0,0,1,50,0,0,0,[
X])
X],[
X]),
Xicon([
Xbox('yellow',520,0,552,32,0,0,0,51,0,[
X]),
Xbox('yellow',532,12,540,20,2,0,1,52,0,[
X])
X],
X"pin",43,[
Xattr("name=", "Q", 1, 0, 1,
Xtext('green',504,8,1,0,4,1,1,0,1,11,19,53,0,15,4,[
X	"Q"])),
Xattr("num=", "", 0, 1, 1,
Xtext('green',536,-24,1,0,4,1,1,0,1,44,19,54,0,15,4,[
X	"num="]))
X]),
Xicon([
Xbox('yellow',520,48,552,80,0,0,0,55,0,[
X]),
Xbox('yellow',532,60,540,68,2,0,1,56,0,[
X])
X],
X"pin",44,[
Xattr("num=", "", 0, 1, 1,
Xtext('green',536,24,1,0,4,1,1,0,1,44,19,57,0,15,4,[
X	"num="])),
Xattr("name=", "Q'", 1, 0, 1,
Xtext('green',496,56,1,0,4,1,1,0,1,22,19,58,0,15,4,[
X	"Q'"]))
X]),
Xicon([
Xbox('yellow',408,0,440,32,0,0,0,59,0,[
X]),
Xbox('yellow',420,12,428,20,2,0,1,60,0,[
X])
X],
X"pin",45,[
Xattr("num=", "", 0, 1, 1,
Xtext('green',424,-24,1,0,4,1,1,0,1,44,19,61,0,15,4,[
X	"num="])),
Xattr("name=", "S'", 1, 0, 1,
Xtext('green',464,8,1,0,4,1,1,0,1,22,19,62,0,15,4,[
X	"S'"]))
X]),
Xicon([
Xbox('yellow',408,48,440,80,0,0,0,63,0,[
X]),
Xbox('yellow',420,60,428,68,2,0,1,64,0,[
X])
X],
X"pin",46,[
Xattr("name=", "R'", 1, 0, 1,
Xtext('green',464,56,1,0,4,1,1,0,1,22,19,65,0,15,4,[
X	"R'"])),
Xattr("num=", "", 0, 1, 1,
Xtext('green',424,24,1,0,4,1,1,0,1,44,19,66,0,15,4,[
X	"num="]))
X])
X],
X"flip-flop",51,[
X]).
Xtext('white',480,104,0,0,4,2,1,0,1,405,42,67,0,17,4,[
X	"This is a SR flip-flop",
X	"Select the flip-flop with left mouse button and type ^V"]).
END_OF_FILE
if test 1783 -ne `wc -c <'an-sr-flip-flop.obj'`; then
    echo shar: \"'an-sr-flip-flop.obj'\" unpacked with wrong size!
fi
# end of 'an-sr-flip-flop.obj'
fi
if test -f 'fonts.obj' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fonts.obj'\"
else
echo shar: Extracting \"'fonts.obj'\" \(8799 characters\)
sed "s/^X//" >'fonts.obj' <<'END_OF_FILE'
Xstate(0,10,0,0,0,16,1,0,1,1,1,0,1,2,7,0,0,3,4,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/fonts.obj,v 2.0 91/03/05 12:50:05 william Exp $
X%
Xtext('yellow',64,64,0,0,4,1,0,0,1,83,21,11,0,17,4,[
X	"hello world"]).
Xtext('yellow',64,80,1,0,4,1,0,0,1,121,19,12,0,15,4,[
X	"hello world"]).
Xtext('yellow',64,96,2,0,4,1,0,0,1,90,22,13,0,18,4,[
X	"hello world"]).
Xtext('yellow',64,112,3,0,4,1,0,0,1,94,22,14,0,18,4,[
X	"hello world"]).
Xtext('yellow',64,128,4,0,4,1,0,0,1,105,25,15,0,18,7,[
X	"hello world"]).
Xtext('yellow',256,64,0,1,4,1,0,0,1,89,21,16,0,17,4,[
X	"hello world"]).
Xtext('yellow',256,80,1,1,4,1,0,0,1,121,20,17,0,15,5,[
X	"hello world"]).
Xtext('yellow',256,96,2,1,4,1,0,0,1,98,22,18,0,17,5,[
X	"hello world"]).
Xtext('yellow',256,112,3,1,4,1,0,0,1,107,22,19,0,18,4,[
X	"hello world"]).
Xtext('yellow',256,128,4,1,4,1,0,0,1,105,25,20,0,18,7,[
X	"hello world"]).
Xtext('yellow',448,64,0,2,4,1,0,0,1,84,22,21,0,17,5,[
X	"hello world"]).
Xtext('yellow',448,80,1,2,4,1,0,0,1,121,19,22,0,15,4,[
X	"hello world"]).
Xtext('yellow',448,96,2,2,4,1,0,0,1,88,22,23,0,17,5,[
X	"hello world"]).
Xtext('yellow',448,112,3,2,4,1,0,0,1,94,22,24,0,16,6,[
X	"hello world"]).
Xtext('yellow',448,128,4,2,4,1,0,0,1,105,25,25,0,18,7,[
X	"hello world"]).
Xtext('yellow',640,64,0,3,4,1,0,0,1,85,21,26,0,17,4,[
X	"hello world"]).
Xtext('yellow',640,80,1,3,4,1,0,0,1,121,20,27,0,15,5,[
X	"hello world"]).
Xtext('yellow',640,96,2,3,4,1,0,0,1,93,22,28,0,17,5,[
X	"hello world"]).
Xtext('yellow',640,112,3,3,4,1,0,0,1,104,22,29,0,16,6,[
X	"hello world"]).
Xtext('yellow',640,128,4,3,4,1,0,0,1,105,25,30,0,18,7,[
X	"hello world"]).
Xtext('yellow',64,192,0,0,5,1,0,0,1,109,28,31,0,22,6,[
X	"hello world"]).
Xtext('yellow',64,208,1,0,5,1,0,0,1,165,24,32,0,19,5,[
X	"hello world"]).
Xtext('yellow',64,224,2,0,5,1,0,0,1,117,29,33,0,24,5,[
X	"hello world"]).
Xtext('yellow',64,240,3,0,5,1,0,0,1,125,28,34,0,23,5,[
X	"hello world"]).
Xtext('yellow',64,256,4,0,5,1,0,0,1,140,32,35,0,24,8,[
X	"hello world"]).
Xtext('yellow',288,192,0,1,5,1,0,0,1,121,28,36,0,22,6,[
X	"hello world"]).
Xtext('yellow',288,208,1,1,5,1,0,0,1,165,25,37,0,20,5,[
X	"hello world"]).
Xtext('yellow',288,224,2,1,5,1,0,0,1,128,29,38,0,24,5,[
X	"hello world"]).
Xtext('yellow',288,240,3,1,5,1,0,0,1,148,29,39,0,24,5,[
X	"hello world"]).
Xtext('yellow',288,256,4,1,5,1,0,0,1,140,32,40,0,24,8,[
X	"hello world"]).
Xtext('yellow',512,192,0,2,5,1,0,0,1,110,29,41,0,23,6,[
X	"hello world"]).
Xtext('yellow',512,208,1,2,5,1,0,0,1,165,24,42,0,19,5,[
X	"hello world"]).
Xtext('yellow',512,224,2,2,5,1,0,0,1,117,29,43,0,24,5,[
X	"hello world"]).
Xtext('yellow',512,240,3,2,5,1,0,0,1,127,28,44,0,23,5,[
X	"hello world"]).
Xtext('yellow',512,256,4,2,5,1,0,0,1,140,32,45,0,24,8,[
X	"hello world"]).
Xtext('yellow',736,192,0,3,5,1,0,0,1,113,28,46,0,22,6,[
X	"hello world"]).
Xtext('yellow',736,208,1,3,5,1,0,0,1,165,25,47,0,20,5,[
X	"hello world"]).
Xtext('yellow',736,224,2,3,5,1,0,0,1,128,29,48,0,24,5,[
X	"hello world"]).
Xtext('yellow',736,240,3,3,5,1,0,0,1,140,29,49,0,24,5,[
X	"hello world"]).
Xtext('yellow',736,256,4,3,5,1,0,0,1,140,32,50,0,24,8,[
X	"hello world"]).
Xtext('yellow',64,320,0,0,3,1,0,0,1,63,18,51,0,14,4,[
X	"hello world"]).
Xtext('yellow',64,336,1,0,3,1,0,0,1,99,16,52,0,13,3,[
X	"hello world"]).
Xtext('yellow',64,352,2,0,3,1,0,0,1,67,17,53,0,14,3,[
X	"hello world"]).
Xtext('yellow',64,368,3,0,3,1,0,0,1,72,17,54,0,14,3,[
X	"hello world"]).
Xtext('yellow',64,384,4,0,3,1,0,0,1,84,20,55,0,14,6,[
X	"hello world"]).
Xtext('yellow',192,320,0,1,3,1,0,0,1,70,18,56,0,14,4,[
X	"hello world"]).
Xtext('yellow',192,336,1,1,3,1,0,0,1,99,16,57,0,12,4,[
X	"hello world"]).
Xtext('yellow',192,352,2,1,3,1,0,0,1,76,17,58,0,14,3,[
X	"hello world"]).
Xtext('yellow',192,368,3,1,3,1,0,0,1,84,18,59,0,15,3,[
X	"hello world"]).
Xtext('yellow',192,384,4,1,3,1,0,0,1,84,20,60,0,14,6,[
X	"hello world"]).
Xtext('yellow',320,320,0,2,3,1,0,0,1,64,18,61,0,14,4,[
X	"hello world"]).
Xtext('yellow',320,336,1,2,3,1,0,0,1,99,16,62,0,13,3,[
X	"hello world"]).
Xtext('yellow',320,352,2,2,3,1,0,0,1,68,17,63,0,14,3,[
X	"hello world"]).
Xtext('yellow',320,368,3,2,3,1,0,0,1,71,17,64,0,14,3,[
X	"hello world"]).
Xtext('yellow',320,384,4,2,3,1,0,0,1,84,20,65,0,14,6,[
X	"hello world"]).
Xtext('yellow',448,320,0,3,3,1,0,0,1,66,17,66,0,14,3,[
X	"hello world"]).
Xtext('yellow',448,336,1,3,3,1,0,0,1,99,16,67,0,12,4,[
X	"hello world"]).
Xtext('yellow',448,352,2,3,3,1,0,0,1,75,17,68,0,14,3,[
X	"hello world"]).
Xtext('yellow',448,368,3,3,3,1,0,0,1,82,17,69,0,14,3,[
X	"hello world"]).
Xtext('yellow',448,384,4,3,3,1,0,0,1,84,20,70,0,14,6,[
X	"hello world"]).
Xtext('yellow',64,448,0,0,2,1,0,0,1,55,15,71,0,12,3,[
X	"hello world"]).
Xtext('yellow',64,464,1,0,2,1,0,0,1,77,14,72,0,11,3,[
X	"hello world"]).
Xtext('yellow',64,480,2,0,2,1,0,0,1,61,15,73,0,12,3,[
X	"hello world"]).
Xtext('yellow',64,496,3,0,2,1,0,0,1,64,15,74,0,12,3,[
X	"hello world"]).
Xtext('yellow',64,512,4,0,2,1,0,0,1,75,16,75,0,12,4,[
X	"hello world"]).
Xtext('yellow',192,448,0,1,2,1,0,0,1,59,15,76,0,12,3,[
X	"hello world"]).
Xtext('yellow',192,464,1,1,2,1,0,0,1,77,14,77,0,11,3,[
X	"hello world"]).
Xtext('yellow',192,480,2,1,2,1,0,0,1,64,15,78,0,12,3,[
X	"hello world"]).
Xtext('yellow',192,496,3,1,2,1,0,0,1,77,15,79,0,12,3,[
X	"hello world"]).
Xtext('yellow',192,512,4,1,2,1,0,0,1,75,16,80,0,12,4,[
X	"hello world"]).
Xtext('yellow',320,448,0,2,2,1,0,0,1,55,15,81,0,12,3,[
X	"hello world"]).
Xtext('yellow',320,464,1,2,2,1,0,0,1,77,14,82,0,11,3,[
X	"hello world"]).
Xtext('yellow',320,480,2,2,2,1,0,0,1,60,15,83,0,12,3,[
X	"hello world"]).
Xtext('yellow',320,496,3,2,2,1,0,0,1,64,15,84,0,12,3,[
X	"hello world"]).
Xtext('yellow',320,512,4,2,2,1,0,0,1,75,16,85,0,12,4,[
X	"hello world"]).
Xtext('yellow',448,448,0,3,2,1,0,0,1,58,15,86,0,12,3,[
X	"hello world"]).
Xtext('yellow',448,464,1,3,2,1,0,0,1,77,14,87,0,11,3,[
X	"hello world"]).
Xtext('yellow',448,480,2,3,2,1,0,0,1,63,15,88,0,12,3,[
X	"hello world"]).
Xtext('yellow',448,496,3,3,2,1,0,0,1,70,15,89,0,12,3,[
X	"hello world"]).
Xtext('yellow',448,512,4,3,2,1,0,0,1,75,16,90,0,12,4,[
X	"hello world"]).
Xtext('yellow',64,576,0,0,1,1,0,0,1,50,13,91,0,10,3,[
X	"hello world"]).
Xtext('yellow',64,592,1,0,1,1,0,0,1,66,11,92,0,9,2,[
X	"hello world"]).
Xtext('yellow',64,608,2,0,1,1,0,0,1,50,13,93,0,11,2,[
X	"hello world"]).
Xtext('yellow',64,624,3,0,1,1,0,0,1,54,13,94,0,11,2,[
X	"hello world"]).
Xtext('yellow',64,640,4,0,1,1,0,0,1,60,14,95,0,10,4,[
X	"hello world"]).
Xtext('yellow',192,576,0,1,1,1,0,0,1,49,13,96,0,10,3,[
X	"hello world"]).
Xtext('yellow',192,592,1,1,1,1,0,0,1,66,11,97,0,9,2,[
X	"hello world"]).
Xtext('yellow',192,608,2,1,1,1,0,0,1,54,13,98,0,11,2,[
X	"hello world"]).
Xtext('yellow',192,624,3,1,1,1,0,0,1,66,13,99,0,11,2,[
X	"hello world"]).
Xtext('yellow',192,640,4,1,1,1,0,0,1,60,14,100,0,10,4,[
X	"hello world"]).
Xtext('yellow',320,576,0,2,1,1,0,0,1,47,13,101,0,10,3,[
X	"hello world"]).
Xtext('yellow',320,592,1,2,1,1,0,0,1,66,11,102,0,9,2,[
X	"hello world"]).
Xtext('yellow',320,608,2,2,1,1,0,0,1,49,13,103,0,11,2,[
X	"hello world"]).
Xtext('yellow',320,624,3,2,1,1,0,0,1,54,13,104,0,11,2,[
X	"hello world"]).
Xtext('yellow',320,640,4,2,1,1,0,0,1,60,14,105,0,10,4,[
X	"hello world"]).
Xtext('yellow',448,576,0,3,1,1,0,0,1,47,13,106,0,10,3,[
X	"hello world"]).
Xtext('yellow',448,592,1,3,1,1,0,0,1,66,11,107,0,9,2,[
X	"hello world"]).
Xtext('yellow',448,608,2,3,1,1,0,0,1,54,13,108,0,11,2,[
X	"hello world"]).
Xtext('yellow',448,624,3,3,1,1,0,0,1,61,13,109,0,11,2,[
X	"hello world"]).
Xtext('yellow',448,640,4,3,1,1,0,0,1,60,14,110,0,10,4,[
X	"hello world"]).
Xtext('yellow',64,704,0,0,0,1,0,0,1,40,10,111,0,8,2,[
X	"hello world"]).
Xtext('yellow',64,720,1,0,0,1,0,0,1,55,10,112,0,8,2,[
X	"hello world"]).
Xtext('yellow',64,736,2,0,0,1,0,0,1,41,11,113,0,9,2,[
X	"hello world"]).
Xtext('yellow',64,752,3,0,0,1,0,0,1,43,10,114,0,8,2,[
X	"hello world"]).
Xtext('yellow',64,768,4,0,0,1,0,0,1,48,11,115,0,8,3,[
X	"hello world"]).
Xtext('yellow',192,704,0,1,0,1,0,0,1,39,10,116,0,8,2,[
X	"hello world"]).
Xtext('yellow',192,720,1,1,0,1,0,0,1,55,9,117,0,7,2,[
X	"hello world"]).
Xtext('yellow',192,736,2,1,0,1,0,0,1,42,11,118,0,9,2,[
X	"hello world"]).
Xtext('yellow',192,752,3,1,0,1,0,0,1,55,10,119,0,8,2,[
X	"hello world"]).
Xtext('yellow',192,768,4,1,0,1,0,0,1,48,11,120,0,8,3,[
X	"hello world"]).
Xtext('yellow',320,704,0,2,0,1,0,0,1,38,10,121,0,8,2,[
X	"hello world"]).
Xtext('yellow',320,720,1,2,0,1,0,0,1,55,9,122,0,7,2,[
X	"hello world"]).
Xtext('yellow',320,736,2,2,0,1,0,0,1,40,11,123,0,9,2,[
X	"hello world"]).
Xtext('yellow',320,752,3,2,0,1,0,0,1,43,10,124,0,8,2,[
X	"hello world"]).
Xtext('yellow',320,768,4,2,0,1,0,0,1,48,11,125,0,8,3,[
X	"hello world"]).
Xtext('yellow',448,704,0,3,0,1,0,0,1,37,10,126,0,8,2,[
X	"hello world"]).
Xtext('yellow',448,720,1,3,0,1,0,0,1,55,9,127,0,7,2,[
X	"hello world"]).
Xtext('yellow',448,736,2,3,0,1,0,0,1,42,11,128,0,9,2,[
X	"hello world"]).
Xtext('yellow',448,752,3,3,0,1,0,0,1,50,10,129,0,8,2,[
X	"hello world"]).
Xtext('yellow',448,768,4,3,0,1,0,0,1,48,11,130,0,8,3,[
X	"hello world"]).
END_OF_FILE
if test 8799 -ne `wc -c <'fonts.obj'`; then
    echo shar: \"'fonts.obj'\" unpacked with wrong size!
fi
# end of 'fonts.obj'
fi
if test -f 'slide-demo.obj' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'slide-demo.obj'\"
else
echo shar: Extracting \"'slide-demo.obj'\" \(2187 characters\)
sed "s/^X//" >'slide-demo.obj' <<'END_OF_FILE'
Xstate(4,10,0,0,0,16,1,0,1,2,0,0,1,2,1,1,1,0,4,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/slide-demo.obj,v 2.0 91/03/05 12:50:08 william Exp $
X%
Xpolygon('yellow',5,[144,32,144,152,336,152,336,32,144,32],1,4,10,1,131,0,[
X]).
Xtext('yellow',240,48,0,0,5,1,1,0,2,71,28,132,0,22,6,[
X	"A Slide"]).
Xtext('yellow',240,112,3,2,5,1,1,0,2,43,28,133,0,23,5,[
X	"Tgif"]).
Xgroup([
Xbox('yellow',16,176,48,208,0,0,0,134,0,[
X]),
Xoval('yellow',28,188,36,196,1,0,1,135,0,[
X])
X],[
X]).
Xtext('yellow',64,183,0,1,4,1,0,0,1,241,21,136,0,17,4,[
X	"Dot is at 0.5 inch from the left."]).
Xtext('yellow',64,246,2,0,4,1,0,0,1,239,22,137,0,18,4,[
X	"Text is at 1 inch from the left."]).
Xtext('yellow',96,308,3,3,4,1,0,0,1,322,22,138,0,16,6,[
X	"This text is at 1.5 inch from the left."]).
Xgroup([
Xbox('yellow',64,304,80,336,0,0,0,139,0,[
X]),
Xbox('yellow',64,318,80,322,1,0,1,140,0,[
X])
X],[
X]).
Xtext('yellow',128,464,0,0,3,1,1,0,1,17,18,141,0,14,4,[
X	"2in"]).
Xtext('yellow',256,464,0,0,3,1,1,0,1,17,18,142,0,14,4,[
X	"4in"]).
Xtext('yellow',384,464,0,0,3,1,1,0,1,17,18,143,0,14,4,[
X	"6in"]).
Xtext('yellow',448,512,0,0,3,1,1,0,1,17,18,144,0,14,4,[
X	"7in"]).
Xtext('yellow',320,512,0,0,3,1,1,0,1,17,18,145,0,14,4,[
X	"5in"]).
Xtext('yellow',192,512,0,0,3,1,1,0,1,17,18,146,0,14,4,[
X	"3in"]).
Xtext('yellow',64,512,0,0,3,1,1,0,1,17,18,147,0,14,4,[
X	"1in"]).
Xtext('yellow',384,144,1,0,0,1,1,0,1,15,10,148,0,8,2,[
X	"8pt"]).
Xtext('yellow',384,160,1,0,1,1,1,0,1,24,11,149,0,9,2,[
X	"10pt"]).
Xtext('yellow',384,176,1,0,2,1,1,0,1,28,14,150,0,11,3,[
X	"12pt"]).
Xtext('yellow',384,192,1,0,3,1,1,0,1,36,16,151,0,13,3,[
X	"14pt"]).
Xtext('yellow',384,208,1,0,4,1,1,0,1,44,19,152,0,15,4,[
X	"18pt"]).
Xtext('yellow',384,224,1,0,5,1,1,0,1,60,24,153,0,19,5,[
X	"24pt"]).
Xpoly('yellow',2,[384,336,384,456],2,0,1,8,0,0,0,[
X]).
Xpoly('yellow',2,[256,336,256,456],2,0,1,10,0,0,0,[
X]).
Xpoly('yellow',2,[128,336,128,456],2,0,1,12,0,0,0,[
X]).
Xpoly('yellow',2,[448,336,448,504],2,0,1,7,0,0,0,[
X]).
Xpoly('yellow',2,[320,336,320,504],2,0,1,9,0,0,0,[
X]).
Xpoly('yellow',2,[192,336,192,504],2,0,1,11,0,0,0,[
X]).
Xpoly('yellow',2,[64,336,64,504],2,0,1,13,0,0,0,[
X]).
Xtext('yellow',240,80,2,0,5,1,1,0,7,145,29,154,0,24,5,[
X	"Presented by"]).
END_OF_FILE
if test 2187 -ne `wc -c <'slide-demo.obj'`; then
    echo shar: \"'slide-demo.obj'\" unpacked with wrong size!
fi
# end of 'slide-demo.obj'
fi
if test -f 'flip-flop.sym' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'flip-flop.sym'\"
else
echo shar: Extracting \"'flip-flop.sym'\" \(5728 characters\)
sed "s/^X//" >'flip-flop.sym' <<'END_OF_FILE'
Xstate(0,10,0,0,0,8,1,8,0,2,0,1,0,0,1,0,0,0,4,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/flip-flop.sym,v 2.0 91/03/05 12:50:10 william Exp $
X%
Xtext('white',496,184,0,0,4,1,0,0,1,252,21,71,0,17,4,[
X	"definition part of the NAND gate."]).
Xtext('white',448,160,0,0,4,1,0,0,1,317,21,72,0,17,4,[
X	"Select a NAND gate and type ^V to see the"]).
Xtext('white',496,136,0,0,4,1,0,0,1,164,21,73,0,17,4,[
X	"building-block object."]).
Xtext('white',448,112,0,0,4,1,0,0,1,341,21,74,0,17,4,[
X	"The rest of this file is the definition part of the"]).
Xtext('white',496,88,0,0,4,1,0,0,1,264,21,75,0,17,4,[
X	"is highlighted with a dashed outline."]).
Xtext('white',448,64,0,0,4,1,0,0,1,293,21,76,0,17,4,[
X	"The representation part of the flip-flop"]).
Xtext('white',448,40,0,0,4,1,0,0,1,321,21,77,0,17,4,[
X	"The SR flip-flop is a building-block object."]).
Xicon([
Xgroup([
Xpoly('yellow',2,[192,272,168,272],0,0,1,20,1,0,0,[
X]),
Xpoly('yellow',2,[192,320,168,320],0,0,1,21,1,0,0,[
X]),
Xpoly('yellow',2,[312,296,288,296],0,0,1,22,1,0,0,[
X]),
Xgroup([
Xoval('yellow',264,284,288,308,2,0,1,78,0,[
X]),
Xpoly('yellow',4,[224,264,192,264,192,328,224,328],0,0,1,23,0,0,0,[
X]),
Xpoly('yellow',3,[224,264,264,264,264,296],0,0,1,24,1,0,0,[
X]),
Xpoly('yellow',3,[224,328,264,328,264,296],0,0,1,25,1,0,0,[
X])
X],[
X])
X],[
X]),
Xicon([
Xbox('yellow',296,280,328,312,0,0,0,79,0,[
X]),
Xbox('yellow',308,292,316,300,2,0,1,80,0,[
X])
X],
X"pin",17,[
Xattr("name=", "out", 0, 1, 1,
Xtext('green',312,272,1,0,4,1,1,0,1,88,19,81,0,15,4,[
X	"name=out"])),
Xattr("num=", "3", 1, 0, 1,
Xtext('green',296,280,1,0,4,1,1,0,1,11,19,82,0,15,4,[
X	"3"]))
X]),
Xicon([
Xbox('yellow',152,256,184,288,0,0,0,83,0,[
X]),
Xbox('yellow',164,268,172,276,2,0,1,84,0,[
X])
X],
X"pin",18,[
Xattr("num=", "1", 1, 0, 1,
Xtext('green',184,256,1,0,4,1,1,0,1,11,19,85,0,15,4,[
X	"1"])),
Xattr("name=", "in1", 0, 1, 1,
Xtext('green',168,248,1,0,4,1,1,0,1,88,19,86,0,15,4,[
X	"name=in1"]))
X]),
Xicon([
Xbox('yellow',152,304,184,336,0,0,0,87,0,[
X]),
Xbox('yellow',164,316,172,324,2,0,1,88,0,[
X])
X],
X"pin",19,[
Xattr("name=", "in2", 0, 1, 1,
Xtext('green',168,296,1,0,4,1,1,0,1,88,19,89,0,15,4,[
X	"name=in2"])),
Xattr("num=", "2", 1, 0, 1,
Xtext('green',184,304,1,0,4,1,1,0,1,11,19,90,0,15,4,[
X	"2"]))
X])
X],
X"nand2",26,[
Xattr("LOC=", "", 1, 1, 1,
Xtext('red',228,285,1,0,5,1,1,0,1,60,24,91,0,19,5,[
X	"LOC="]))
X]).
Xicon([
Xgroup([
Xpoly('yellow',2,[192,392,168,392],0,0,1,27,1,0,0,[
X]),
Xpoly('yellow',2,[192,440,168,440],0,0,1,28,1,0,0,[
X]),
Xpoly('yellow',2,[312,416,288,416],0,0,1,29,1,0,0,[
X]),
Xgroup([
Xoval('yellow',264,404,288,428,2,0,1,92,0,[
X]),
Xpoly('yellow',4,[224,384,192,384,192,448,224,448],0,0,1,30,0,0,0,[
X]),
Xpoly('yellow',3,[224,384,264,384,264,416],0,0,1,31,1,0,0,[
X]),
Xpoly('yellow',3,[224,448,264,448,264,416],0,0,1,32,1,0,0,[
X])
X],[
X])
X],[
X]),
Xicon([
Xbox('yellow',296,400,328,432,0,0,0,93,0,[
X]),
Xbox('yellow',308,412,316,420,2,0,1,94,0,[
X])
X],
X"pin",33,[
Xattr("num=", "3", 1, 0, 1,
Xtext('green',296,400,1,0,4,1,1,0,1,11,19,95,0,15,4,[
X	"3"])),
Xattr("name=", "out", 0, 1, 1,
Xtext('green',312,392,1,0,4,1,1,0,1,88,19,96,0,15,4,[
X	"name=out"]))
X]),
Xicon([
Xbox('yellow',152,376,184,408,0,0,0,97,0,[
X]),
Xbox('yellow',164,388,172,396,2,0,1,98,0,[
X])
X],
X"pin",34,[
Xattr("name=", "in1", 0, 1, 1,
Xtext('green',168,368,1,0,4,1,1,0,1,88,19,99,0,15,4,[
X	"name=in1"])),
Xattr("num=", "1", 1, 0, 1,
Xtext('green',184,376,1,0,4,1,1,0,1,11,19,100,0,15,4,[
X	"1"]))
X]),
Xicon([
Xbox('yellow',152,424,184,456,0,0,0,101,0,[
X]),
Xbox('yellow',164,436,172,444,2,0,1,102,0,[
X])
X],
X"pin",35,[
Xattr("num=", "2", 1, 0, 1,
Xtext('green',184,424,1,0,4,1,1,0,1,11,19,103,0,15,4,[
X	"2"])),
Xattr("name=", "in2", 0, 1, 1,
Xtext('green',168,416,1,0,4,1,1,0,1,88,19,104,0,15,4,[
X	"name=in2"]))
X])
X],
X"nand2",36,[
Xattr("LOC=", "", 1, 1, 1,
Xtext('red',228,405,1,0,5,1,1,0,1,60,24,105,0,19,5,[
X	"LOC="]))
X]).
Xpoly('cyan',6,[312,416,336,416,336,392,144,344,144,320,168,320],0,0,1,41,0,0,0,[
X]).
Xpoly('cyan',6,[312,296,336,296,336,320,144,368,144,392,168,392],0,0,1,42,0,0,0,[
X]).
Xsym([
Xgroup([
Xbox('yellow',208,88,272,168,0,0,1,106,0,[
X]),
Xpoly('yellow',2,[184,104,208,104],0,0,1,47,0,0,0,[
X]),
Xpoly('yellow',2,[184,152,208,152],0,0,1,48,0,0,0,[
X]),
Xpoly('yellow',2,[272,104,296,104],0,0,1,49,0,0,0,[
X]),
Xpoly('yellow',2,[272,152,296,152],0,0,1,50,0,0,0,[
X])
X],[
X]),
Xicon([
Xbox('yellow',280,88,312,120,0,0,0,107,0,[
X]),
Xbox('yellow',292,100,300,108,2,0,1,108,0,[
X])
X],
X"pin",43,[
Xattr("name=", "Q", 1, 0, 1,
Xtext('green',264,96,1,0,4,1,1,0,1,11,19,109,0,15,4,[
X	"Q"])),
Xattr("num=", "", 0, 1, 1,
Xtext('green',296,64,1,0,4,1,1,0,1,44,19,110,0,15,4,[
X	"num="]))
X]),
Xicon([
Xbox('yellow',280,136,312,168,0,0,0,111,0,[
X]),
Xbox('yellow',292,148,300,156,2,0,1,112,0,[
X])
X],
X"pin",44,[
Xattr("num=", "", 0, 1, 1,
Xtext('green',296,112,1,0,4,1,1,0,1,44,19,113,0,15,4,[
X	"num="])),
Xattr("name=", "Q'", 1, 0, 1,
Xtext('green',256,144,1,0,4,1,1,0,1,22,19,114,0,15,4,[
X	"Q'"]))
X]),
Xicon([
Xbox('yellow',168,88,200,120,0,0,0,115,0,[
X]),
Xbox('yellow',180,100,188,108,2,0,1,116,0,[
X])
X],
X"pin",45,[
Xattr("num=", "", 0, 1, 1,
Xtext('green',184,64,1,0,4,1,1,0,1,44,19,117,0,15,4,[
X	"num="])),
Xattr("name=", "S'", 1, 0, 1,
Xtext('green',224,96,1,0,4,1,1,0,1,22,19,118,0,15,4,[
X	"S'"]))
X]),
Xicon([
Xbox('yellow',168,136,200,168,0,0,0,119,0,[
X]),
Xbox('yellow',180,148,188,156,2,0,1,120,0,[
X])
X],
X"pin",46,[
Xattr("name=", "R'", 1, 0, 1,
Xtext('green',224,144,1,0,4,1,1,0,1,22,19,121,0,15,4,[
X	"R'"])),
Xattr("num=", "", 0, 1, 1,
Xtext('green',184,112,1,0,4,1,1,0,1,44,19,122,0,15,4,[
X	"num="]))
X])
X],[
X]).
Xpoly('cyan',4,[184,104,80,104,80,272,168,272],0,0,1,51,0,0,0,[
X]).
Xpoly('cyan',4,[184,152,64,152,64,440,168,440],0,0,1,52,0,0,0,[
X]).
Xpoly('cyan',4,[312,296,360,296,360,104,296,104],0,0,1,53,0,0,0,[
X]).
Xpoly('cyan',4,[312,416,376,416,376,152,296,152],0,0,1,54,0,0,0,[
X]).
END_OF_FILE
if test 5728 -ne `wc -c <'flip-flop.sym'`; then
    echo shar: \"'flip-flop.sym'\" unpacked with wrong size!
fi
# end of 'flip-flop.sym'
fi
if test -f 'nand2.sym' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'nand2.sym'\"
else
echo shar: Extracting \"'nand2.sym'\" \(2780 characters\)
sed "s/^X//" >'nand2.sym' <<'END_OF_FILE'
Xstate(0,10,0,0,0,8,1,8,0,2,0,1,0,0,1,0,0,0,4,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/nand2.sym,v 2.0 91/03/05 12:50:11 william Exp $
X%
Xtext('white',320,264,0,0,4,1,0,0,1,428,21,123,0,17,4,[
X	"Select a pin icon and type #M to look at the pin attributes."]).
Xtext('white',320,240,0,0,4,1,0,0,1,436,21,124,0,17,4,[
X	"You can actually push into the little squares which are pins."]).
Xtext('white',320,216,0,0,4,1,0,0,1,377,21,125,0,17,4,[
X	"Ungroup the little pieces and see what is it made of."]).
Xtext('white',384,192,0,0,4,1,0,0,1,94,21,126,0,17,4,[
X	"box go away."]).
Xtext('white',320,168,0,0,4,1,0,0,1,390,21,127,0,17,4,[
X	"Select the UnMakeSymbolic item and see the dashed"]).
Xtext('white',384,144,0,0,4,1,0,0,1,129,21,128,0,17,4,[
X	"named ``special''."]).
Xtext('white',384,120,0,0,4,1,0,0,1,356,21,129,0,17,4,[
X	"the right mouse button, then select the last entry"]).
Xtext('white',320,96,0,0,4,1,0,0,1,438,21,130,0,17,4,[
X	"Select one of the NAND gates, pop up the main menu using"]).
Xtext('white',320,72,0,0,4,1,0,0,1,237,21,131,0,17,4,[
X	"Make a copy of the NAND gate."]).
Xtext('white',320,48,0,0,4,1,0,0,1,374,21,132,0,17,4,[
X	"It is therefore a ``primitive'' building-block object."]).
Xtext('white',320,24,0,0,4,1,0,0,1,338,21,133,0,17,4,[
X	"The NAND gate has no implementation part."]).
Xsym([
Xgroup([
Xpoly('yellow',2,[136,104,112,104],0,0,1,20,1,0,0,[
X]),
Xpoly('yellow',2,[136,152,112,152],0,0,1,21,1,0,0,[
X]),
Xpoly('yellow',2,[256,128,232,128],0,0,1,22,1,0,0,[
X]),
Xgroup([
Xoval('yellow',208,116,232,140,2,0,1,134,0,[
X]),
Xpoly('yellow',4,[168,96,136,96,136,160,168,160],0,0,1,23,0,0,0,[
X]),
Xpoly('yellow',3,[168,96,208,96,208,128],0,0,1,24,1,0,0,[
X]),
Xpoly('yellow',3,[168,160,208,160,208,128],0,0,1,25,1,0,0,[
X])
X],[
X])
X],[
X]),
Xicon([
Xbox('yellow',240,112,272,144,0,0,0,135,0,[
X]),
Xbox('yellow',252,124,260,132,2,0,1,136,0,[
X])
X],
X"pin",17,[
Xattr("name=", "out", 0, 1, 1,
Xtext('green',256,104,1,0,4,1,1,0,1,88,19,137,0,15,4,[
X	"name=out"])),
Xattr("num=", "3", 1, 0, 1,
Xtext('green',240,112,1,0,4,1,1,0,1,11,19,138,0,15,4,[
X	"3"]))
X]),
Xicon([
Xbox('yellow',96,88,128,120,0,0,0,139,0,[
X]),
Xbox('yellow',108,100,116,108,2,0,1,140,0,[
X])
X],
X"pin",18,[
Xattr("num=", "1", 1, 0, 1,
Xtext('green',128,88,1,0,4,1,1,0,1,11,19,141,0,15,4,[
X	"1"])),
Xattr("name=", "in1", 0, 1, 1,
Xtext('green',112,80,1,0,4,1,1,0,1,88,19,142,0,15,4,[
X	"name=in1"]))
X]),
Xicon([
Xbox('yellow',96,136,128,168,0,0,0,143,0,[
X]),
Xbox('yellow',108,148,116,156,2,0,1,144,0,[
X])
X],
X"pin",19,[
Xattr("name=", "in2", 0, 1, 1,
Xtext('green',112,128,1,0,4,1,1,0,1,88,19,145,0,15,4,[
X	"name=in2"])),
Xattr("num=", "2", 1, 0, 1,
Xtext('green',128,136,1,0,4,1,1,0,1,11,19,146,0,15,4,[
X	"2"]))
X])
X],[
Xattr("LOC=", "", 1, 1, 0,
Xtext('red',172,117,1,0,5,1,1,0,1,60,24,147,0,19,5,[
X	"LOC="]))
X]).
END_OF_FILE
if test 2780 -ne `wc -c <'nand2.sym'`; then
    echo shar: \"'nand2.sym'\" unpacked with wrong size!
fi
# end of 'nand2.sym'
fi
if test -f 'pin.sym' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'pin.sym'\"
else
echo shar: Extracting \"'pin.sym'\" \(449 characters\)
sed "s/^X//" >'pin.sym' <<'END_OF_FILE'
Xstate(0,10,0,0,0,16,1,4,2,2,0,0,0,0,1,1,1,0,5,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/pin.sym,v 2.0 91/03/05 12:50:12 william Exp $
X%
Xsym([
Xbox('yellow',96,96,128,128,0,0,0,76,0,[
X]),
Xbox('yellow',108,108,116,116,2,0,1,77,0,[
X])
X],[
Xattr("name=", "", 1, 1, 0,
Xtext('green',112,88,1,0,4,1,1,0,1,55,19,78,0,15,4,[
X	"name="])),
Xattr("num=", "", 1, 1, 0,
Xtext('green',112,72,1,0,4,1,1,0,1,44,19,79,0,15,4,[
X	"num="]))
X]).
END_OF_FILE
if test 449 -ne `wc -c <'pin.sym'`; then
    echo shar: \"'pin.sym'\" unpacked with wrong size!
fi
# end of 'pin.sym'
fi
if test -f 'tangram.sym' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'tangram.sym'\"
else
echo shar: Extracting \"'tangram.sym'\" \(630 characters\)
sed "s/^X//" >'tangram.sym' <<'END_OF_FILE'
Xstate(0,10,0,0,0,16,1,4,1,1,0,0,1,2,1,0,0,0,7,0,0).
X%
X% @(#)$Header: /tmp_mnt/n/kona/tangram/u/william/X11/TGIF2/RCS/tangram.sym,v 2.0 91/03/05 12:50:29 william Exp $
X%
Xsym([
Xpolygon('yellow',5,[128,96,96,128,128,160,160,128,128,96],0,0,1,0,79,0,[
X]),
Xpoly('yellow',2,[96,128,160,128],0,0,1,0,0,0,0,[
X]),
Xpoly('yellow',2,[112,112,144,112],0,0,1,1,0,0,0,[
X]),
Xpoly('yellow',2,[128,112,128,160],0,0,1,2,0,0,0,[
X]),
Xpoly('yellow',2,[112,112,112,128],0,0,1,3,0,0,0,[
X]),
Xpoly('yellow',2,[128,112,144,128],0,0,1,4,0,0,0,[
X])
X],[
Xattr("name=", "Tangram", 1, 0, 0,
Xtext('yellow',128,160,3,2,3,1,1,0,1,65,17,80,0,14,3,[
X	"Tangram"]))
X]).
END_OF_FILE
if test 630 -ne `wc -c <'tangram.sym'`; then
    echo shar: \"'tangram.sym'\" unpacked with wrong size!
fi
# end of 'tangram.sym'
fi
echo shar: End of archive 23 \(of 23\).
cp /dev/null ark23isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 23 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
---------------------------------> cut here <---------------------------------
-- 
Bill Cheng // UCLA Computer Science Department // (213) 206-7135
3277 Boelter Hall // Los Angeles, California 90024 // USA
william@CS.UCLA.EDU      ...!{uunet|ucbvax}!cs.ucla.edu!william

--
Dan Heller
------------------------------------------------
O'Reilly && Associates		 Z-Code Software
Senior Writer			       President
argv@ora.com			argv@zipcode.com
------------------------------------------------
General Email: argv@sun.com
Comp-sources-x stuff: comp-sources.x@uunet.uu.net