[comp.sources.x] v03i087: Xcu -- widget set from Cornell University, Part11/12

argv@island.uu.net (Dan Heller) (04/27/89)

Submitted-by: Gene Dykes <gdykes@tcgould.tn.cornell.edu>
Posting-number: Volume 3, Issue 87
Archive-name: xcu/part11

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then feed it
# into a shell via "sh file" or similar.  To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix@uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
#		"End of archive 11 (of 12)."
# Contents:  Geometry/README Geometry/gdiff bin/wlm_incl_make
#   bin/wlm_update_class doc/wlm_world.mm examples/xlayout/bmgr.wl
#   examples/xlayout/bw_bmgr.wl examples/xlayout/bw_menu.wl
#   examples/xlayout/menu.wl examples/xlayout/shadow.wc
#   examples/xtbl/README examples/xwlm/xwlm.wh man/CuBmgrR.man
#   man/CuButton.man man/CuDeck.man man/CuGravityR.man
#   man/CuJustifyR.man src/CuBmgrP.h src/CuButtonP.h src/CuCommandP.h
#   src/CuGravityR.c src/CuJustifyR.c src/CuLabelP.h src/CuSimple.h
#   src/CuSimpleP.h src/CuSimpleR.h src/disclaimer.h
#   wlmCompiler/CuStack.c wlmCompiler/wlc.h
# Wrapped by argv@island on Mon Apr 24 15:42:17 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Geometry/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Geometry/README'\"
else
echo shar: Extracting \"'Geometry/README'\" \(1089 characters\)
sed "s/^X//" >'Geometry/README' <<'END_OF_FILE'
XThere is a bug in the X11R3 Inrinsics routine XtMakeGeometryRequest(),
Xwhich is found in Geometry.c.  The effect of this bug is to make
Xmy geometry managers look bad. :-)
X
XTo duplicate on your system, try the "xtbl 6 -file tst6" demonstration
Xfound in examples/xtbl.  After hitting the "fill" button, you will see
Xsome widgets out of place.  For another demonstration of this effect,
Xafter the widgets appear, resize the window
Xmuch larger with your window manager.  Then when you change the text in one
Xof the widgets by clicking in the text box, the window will get small
Xagain, but some of the children will be in the wrong place.
X
XIn this directory is a fixed version of Geometry.c.  Just in case you have
Xa copy of Geometry.c that has been modified since it came off the original
XX11R3 distribution, "gdiff" contains the difference between the original
XGeometry.c and the one with my correction.
X
XThis fix was arrived at after discussions with Ralph Swick, so it's not
Xjust something off the top of my head.  As far as I know, however,
Xan official patch for it has not been sent out.

END_OF_FILE
echo shar: NEWLINE appended to \"'Geometry/README'\"
if test 1090 -ne `wc -c <'Geometry/README'`; then
    echo shar: \"'Geometry/README'\" unpacked with wrong size!
fi
# end of 'Geometry/README'
fi
if test -f 'Geometry/gdiff' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Geometry/gdiff'\"
else
echo shar: Extracting \"'Geometry/gdiff'\" \(1432 characters\)
sed "s/^X//" >'Geometry/gdiff' <<'END_OF_FILE'
X45d44
X<     XWindowChanges changes;
X108,114d106
X<     /* keep record of what the widget looks like before calling geometry mgr */
X<     changes.x = widget->core.x ;
X<     changes.y = widget->core.y ;
X<     changes.width = widget->core.width ;
X<     changes.height = widget->core.height ;
X<     changes.border_width = widget->core.border_width ;
X< 
X151d142
X< 	/* determine reconfigurable items by comparing with "old" widget */
X153,172c144
X< 	if (changes.x != widget->core.x) {
X< 	    changeMask |= CWX;
X< 	    changes.x = widget->core.x;
X< 	}
X< 	if (changes.y != widget->core.y) {
X< 	    changeMask |= CWY;
X< 	    changes.y = widget->core.y;
X< 	}
X< 	if (changes.width != widget->core.width) {
X< 	    changeMask |= CWWidth;
X< 	    changes.width = widget->core.width;
X< 	}
X< 	if (changes.height != widget->core.height) {
X< 	    changeMask |= CWHeight;
X< 	    changes.height = widget->core.height;
X< 	}
X< 	if (changes.border_width != widget->core.border_width) {
X< 	    changeMask |= CWBorderWidth;
X< 	    changes.border_width = widget->core.border_width;
X< 	}
X---
X> 	XWindowChanges changes;
X173a146,151
X> 	if (changeMask & CWX) changes.x = widget->core.x;
X> 	if (changeMask & CWY) changes.y = widget->core.y;
X> 	if (changeMask & CWWidth) changes.width = widget->core.width;
X> 	if (changeMask & CWHeight) changes.height = widget->core.height;
X> 	if (changeMask & CWBorderWidth)
X> 	    changes.border_width = widget->core.border_width;

END_OF_FILE
echo shar: NEWLINE appended to \"'Geometry/gdiff'\"
if test 1433 -ne `wc -c <'Geometry/gdiff'`; then
    echo shar: \"'Geometry/gdiff'\" unpacked with wrong size!
fi
# end of 'Geometry/gdiff'
fi
if test -f 'bin/wlm_incl_make' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bin/wlm_incl_make'\"
else
echo shar: Extracting \"'bin/wlm_incl_make'\" \(1340 characters\)
sed "s/^X//" >'bin/wlm_incl_make' <<'END_OF_FILE'
X#!/bin/sh
X
Xhp_present=0
X
Xecho "#include \"CuWlmP.h\""
Xfor i in $* ; do
X    trail=`echo $i | sed 's/..//'`	# peel off first two letters
X    First=`basename $i $trail`		# capture first two letters
X    if [ "$First" = "Xw" ] ; then	# test for HP violations
X	if [ $hp_present -eq 0 ] ; then # only include this once if needed
X	    echo "#include <Xw/Xw.h>"
X	    hp_present=1
X	fi
X	echo "#include <Xw/${trail}.h>"
X    else
X	echo "#include \"${i}.h\""
X    fi
Xdone
Xecho ""
Xecho "void"
Xecho "make_tag_class_list (ww)"
Xecho "    CuWlmWidget ww ;"
Xecho "{"
Xecho "CuWlmTagClassList *list = NULL ;"
Xecho "CuWlmTagClassList *save ;"
Xecho ""
Xfor i in $* ; do
X    echo "save = list ;"
X    echo 'list = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;'
X    echo "list->quark = XrmStringToQuark (\"$i\") ;"
X
X    trail=`echo $i | sed 's/..//'`	# peel off first two letters
X    First=`basename $i $trail`		# capture first two letters
X    if [ "$First" = "Xw" ] ; then	# test for HP violations
X	violation=Xw
X	i=$trail
X    else
X	violation=""
X    fi
X
X    trail=`echo $i | sed 's/.//'`
X    First=`basename $i $trail`
X    first=`echo $First | tr "[A-Z]" "[a-z]"`
X    echo "list->class = ${violation}${first}${trail}WidgetClass ;"
X    echo "list->next = save ;"
X    echo ""
Xdone
X
Xecho "ww->wlm.tag_class_list = list ;"
Xecho "return ;"
Xecho "}"
Xecho ""
X

END_OF_FILE
echo shar: NEWLINE appended to \"'bin/wlm_incl_make'\"
if test 1341 -ne `wc -c <'bin/wlm_incl_make'`; then
    echo shar: \"'bin/wlm_incl_make'\" unpacked with wrong size!
fi
chmod +x 'bin/wlm_incl_make'
# end of 'bin/wlm_incl_make'
fi
if test -f 'bin/wlm_update_class' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bin/wlm_update_class'\"
else
echo shar: Extracting \"'bin/wlm_update_class'\" \(1436 characters\)
sed "s/^X//" >'bin/wlm_update_class' <<'END_OF_FILE'
X#!/bin/sh
X
Xclient=$1
Xshift
X
X#
X# get the widget classes from each WLDL and merge them
X# (The top level WLDLs are the arguments to this script;
X#  WLDLs embedded within these are found by wlm_compile 
X#  and processed in subsequent trips through the while loop)
X#
X
Xa="$*"
Xecho > /tmp/wlm$$
Xecho > /tmp/class$$
X
Xwhile [ "$a" ] ; do				# while there are WLDLs to do
X    for i in $a ; do				# for each WLDL
X	b=`basename $i .wl`
X	if [ ! -r $i ] ; then
X	    echo "WLDL \($i\) not found!"
X	    exit 1
X	fi
X	wlc $i 				# find:
X	/bin/cat $b.cl >> /tmp/class$$		#  widget classes and
X	/bin/cat $b.lw >> /tmp/wlm$$		#  embedded WLDLs
X    done
X
X    a=`/bin/cat /tmp/wlm$$`			# pick up list of embedded WLDLs
X    echo > /tmp/wlm$$
Xdone
X
Xif [ ! -r $client.wb ] ; then			# create null file if necessary
X    touch $client.wb
Xfi
X
X#
X# compact to one and only one entry per widget class
X#
X
Xsort /tmp/class$$ | uniq > /tmp/class$$x
X
X#
X# find only those classes that appear once in old and new lists
X#
X
X/bin/cat $client.wb      /tmp/class$$x | sort | uniq -u > /tmp/class$$y
X
X#
X# see if it is in one of the new lists
X#
X
Xa=`/bin/cat /tmp/class$$y /tmp/class$$x | sort | uniq -d`
X
Xif [ "$a" ] ; then	
X    #
X    # it is, so append the new ones to the end of the target
X    #
X    echo $a > $client.nc
X    touch $client.wf
Xelse
X    touch $client.nc
X    if [ ! -r $client.wf ] ; then touch $client.wf ; fi
Xfi
X
Xrm /tmp/class$$ /tmp/class$$x /tmp/class$$y /tmp/wlm$$

END_OF_FILE
echo shar: NEWLINE appended to \"'bin/wlm_update_class'\"
if test 1437 -ne `wc -c <'bin/wlm_update_class'`; then
    echo shar: \"'bin/wlm_update_class'\" unpacked with wrong size!
fi
chmod +x 'bin/wlm_update_class'
# end of 'bin/wlm_update_class'
fi
if test -f 'doc/wlm_world.mm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/wlm_world.mm'\"
else
echo shar: Extracting \"'doc/wlm_world.mm'\" \(1469 characters\)
sed "s/^X//" >'doc/wlm_world.mm' <<'END_OF_FILE'
X.ll +5
X.PH ""
X.ce
XWLM's "Good-bye, World!"
X.sp
X.ta 0.25i 0.50i 0.75i 1.00i 1.25i 1.50i 1.75i 2.00i 2.25i 2.50i 2.75i 3.00i
XThe following two figures show how to implement a "Good-bye, world!" command
Xbutton, that causes the program to terminate.  Figure 1 is the Widget Layout
XDescription Language and Figure 2 is the client program.
X.sp
X.ce
XFIGURE 1
X.sp
X.ps -1
XCuWlm {
X.br
X	CuCommand {
X.br
X		name "exit"
X.br
X		label "Good-bye, world!"
X.br
X		}
X.br
X	}
X.ps +1
X.sp
X.ce
XFIGURE 2
X.sp
X.ps -1
X.sp
X#include <X11/Intrinsic.h>
X.br
X#include <X11/StringDefs.h>
X.br
X#include <X11/Shell.h>
X.br
X#include "CuWlm.h"
X.sp
Xstatic void exit_routine () ;
X.br
Xstatic Arg wlm_arg ;
X.sp
Xmain(argc, argv)
X.br
X    int argc ;
X.br
X    char **argv ;
X.br
X{
X.br
XWidget top, wlm_id ;
X.br
Xtop = XtInitialize ( NULL, "top", NULL, NULL, &argc, argv ) ;
X.br
XXtSetArg (wlm_arg, XtNfile, argv[1]) ;
X.br
Xwlm_id = XtCreateManagedWidget ( "wlm", cuWlmWidgetClass, top, &wlm_arg, 1 ) ;
X.br
XCuWlmAddCallback ( wlm_id, NULL, "CuCommand", "exit", "callback", exit_routine, NULL ) ;
X.br
XXtRealizeWidget (top) ;
X.sp
Xfor (;;) {
X.br
X	CuWlmRequest ( wlm_id ) ;
X.br
X	}
X.br
X}
X.sp
Xstatic void
X.br
Xexit_routine ()
X.br
X{
X.br
Xexit (0) ;
X.br
X}
X.sp
X#include "CuWlmP.h"
X.br
X#include "CuWlm.h"
X.br
X#include "CuCommand.h"
X.sp
Xvoid
X.br
Xmake_tag_class_list (ww)
X.br
X    CuWlmWidget ww ;
X.br
X{
X.br
XTAG_CLASS_ENTRY(ww, "CuWlm", cuWlmWidgetClass) ;
X.br
XTAG_CLASS_ENTRY(ww, "CuCommand", cuCommandWidgetClass) ;
X.br
Xreturn ;
X.br
X}
X.ps +1

END_OF_FILE
echo shar: NEWLINE appended to \"'doc/wlm_world.mm'\"
if test 1470 -ne `wc -c <'doc/wlm_world.mm'`; then
    echo shar: \"'doc/wlm_world.mm'\" unpacked with wrong size!
fi
# end of 'doc/wlm_world.mm'
fi
if test -f 'examples/xlayout/bmgr.wl' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xlayout/bmgr.wl'\"
else
echo shar: Extracting \"'examples/xlayout/bmgr.wl'\" \(2110 characters\)
sed "s/^X//" >'examples/xlayout/bmgr.wl' <<'END_OF_FILE'
XCuWlm
X    {
X    *dimFacetColor "SteelBlue"
X    *brightFacetColor "LightSteelBlue"
X    *facetWidth "5"
X    *CuCommand.background "white"
X    *CuCommand.foreground "black"
X    *CuCommand.cursor "dot"
X    *CuLabel.background "LightGray"
X    *CuLabel.borderColor "LightGray"
X    *CuLabel.foreground "black"
X    *CuLabel.facetWidth "0"
X    *CuTbl.internalWidth "20"
X    *CuTbl.internalHeight "20"
X    *CuTbl.interWidth "10"
X    *CuTbl.interHeight "10"
X    CuTbl
X	{
X	formatString "c."
X	background "White"
X	internalWidth "20"
X	internalHeight "20"
X	interWidth "10"
X	interHeight "10"
X
X    /*
X     * Notice that the hierarchical positioning of the CuBmgr widgets
X     * is arbitrary.  They only have to appear within the scope of the
X     * CuWlm widget. The first few are shown as if they are
X     * parents of the CuButton widgets; the last two are shown near
X     * the end of the file.
X     */
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "LightGray"
X	    CuLabel { name "Transient" }
X	    CuBmgr
X		{
X		bmgrType "Transient"
X		manage "STEP"
X		CuButton { name "STEP" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "LightGray"
X	    CuLabel { name "Single Toggle" }
X	    CuBmgr
X		{
X		bmgrType "SingleToggle"
X		manage "HIGHLIGHT"
X		CuButton { name "HIGHLIGHT" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c."
X	    background "LightGray"
X	    CuLabel { name "Double Toggle" }
X	    CuBmgr
X		{
X		bmgrType "DoubleToggle"
X		manage "ON" "OFF"
X		CuButton { name "ON" set "True" }
X		CuButton { name "OFF" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c c."
X	    background "LightGray"
X	    CuLabel { name "One of Many" }
X	    CuButton { name "XY" }
X	    CuButton { name "YZ" }
X	    CuButton { name "ZX" set "True" }
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c c."
X	    background "LightGray"
X	    CuLabel { name "Any of Many" }
X	    CuButton { name "RED" }
X	    CuButton { name "GRN" set "True" }
X	    CuButton { name "BLU" set "True" }
X	    }
X	}
X
X    CuBmgr
X	{
X	bmgrType "OneOfMany"
X	manage "XY" "YZ" "ZX"
X	}
X
X    CuBmgr
X	{
X	bmgrType "AnyOfMany"
X	manage "RED" "GRN" "BLU"
X	}
X    }
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/bmgr.wl'\"
if test 2111 -ne `wc -c <'examples/xlayout/bmgr.wl'`; then
    echo shar: \"'examples/xlayout/bmgr.wl'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/bmgr.wl'
fi
if test -f 'examples/xlayout/bw_bmgr.wl' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xlayout/bw_bmgr.wl'\"
else
echo shar: Extracting \"'examples/xlayout/bw_bmgr.wl'\" \(1896 characters\)
sed "s/^X//" >'examples/xlayout/bw_bmgr.wl' <<'END_OF_FILE'
XCuWlm
X    {
X    *CuCommand.cursor "dot"
X    *CuTbl.internalWidth "20"
X    *CuTbl.internalHeight "20"
X    *CuTbl.interWidth "10"
X    *CuTbl.interHeight "10"
X    *CuButton.shadow "True"
X    *CuButton.internalWidth "10"
X    *CuButton.internalHeight "10"
X    *CuLabel.shadow "True"
X    *CuLabel.borderColor "White"
X    *CuLabel.facetWidth "1"
X    *CuButton.borderColor "White"
X    CuTbl
X	{
X	formatString "c."
X	background "White"
X	internalWidth "20"
X	internalHeight "20"
X	interWidth "10"
X	interHeight "10"
X
X    /*
X     * Notice that the hierarchical positioning of the CuBmgr widgets
X     * is arbitrary.  They only have to appear within the scope of the
X     * CuWlm widget. The first few are shown as if they are
X     * parents of the CuButton widgets; the last two are shown near
X     * the end of the file.
X     */
X
X	CuTbl
X	    {
X	    formatString "c."
X	    CuLabel { name "Transient" }
X	    CuBmgr
X		{
X		bmgrType "Transient"
X		manage "STEP"
X		CuButton { name "STEP" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c."
X	    CuLabel { name "Single Toggle" }
X	    CuBmgr
X		{
X		bmgrType "SingleToggle"
X		manage "HIGHLIGHT"
X		CuButton { name "HIGHLIGHT" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c."
X	    CuLabel { name "Double Toggle" }
X	    CuBmgr
X		{
X		bmgrType "DoubleToggle"
X		manage "ON" "OFF"
X		CuButton { name "ON" set "True" }
X		CuButton { name "OFF" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c c."
X	    CuLabel { name "One of Many" }
X	    CuButton { name "XY" }
X	    CuButton { name "YZ" }
X	    CuButton { name "ZX" set "True" }
X	    }
X
X	CuTbl
X	    {
X	    formatString "c\nc c c."
X	    CuLabel { name "Any of Many" }
X	    CuButton { name "RED" }
X	    CuButton { name "GRN" set "True" }
X	    CuButton { name "BLU" set "True" }
X	    }
X	}
X
X    CuBmgr
X	{
X	bmgrType "OneOfMany"
X	manage "XY" "YZ" "ZX"
X	}
X
X    CuBmgr
X	{
X	bmgrType "AnyOfMany"
X	manage "RED" "GRN" "BLU"
X	}
X    }
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/bw_bmgr.wl'\"
if test 1897 -ne `wc -c <'examples/xlayout/bw_bmgr.wl'`; then
    echo shar: \"'examples/xlayout/bw_bmgr.wl'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/bw_bmgr.wl'
fi
if test -f 'examples/xlayout/bw_menu.wl' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xlayout/bw_menu.wl'\"
else
echo shar: Extracting \"'examples/xlayout/bw_menu.wl'\" \(1781 characters\)
sed "s/^X//" >'examples/xlayout/bw_menu.wl' <<'END_OF_FILE'
XCuWlm
X    {
X    *shadow "True"
X    *dimFacetColor "Black"
X    *facetWidth "5"
X    *CuCommand.background "white"
X    *CuCommand.foreground "black"
X    *CuCommand.cursor "dot"
X    *CuLabel.background "white"
X    *CuLabel.borderColor "white"
X    *CuLabel.foreground "black"
X    *CuTbl.internalWidth "20"
X    *CuTbl.internalHeight "20"
X    *CuTbl.interWidth "10"
X    *CuTbl.interHeight "10"
X    CuTbl
X	{
X	formatString "c."
X	background "White"
X	internalWidth "20"
X	internalHeight "20"
X	interWidth "10"
X	interHeight "10"
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "white"
X	    CuLabel { facetWidth "1" name "Variable Menu Pages" }
X	    CuDeck
X		{
X		name "menu"
X		background "white"
X		*CuLabel.internalWidth "50"
X		*CuLabel.internalHeight "100"
X		*CuLabel.background "white"
X		CuLabel { name "Menu Page 1" }
X		CuLabel { name "Menu Page 2" }
X		CuLabel { name "Menu Page 3" }
X		CuLabel { name "Menu Page 4" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "white"
X	    CuLabel { facetWidth "1" name "Permanent Menu Buttons" }
X	    CuTbl
X		{
X		formatString "c c."
X		background "white"
X		CuBmgr
X		    {
X		    bmgrType "OneOfMany"
X		    if setCallback ( String "Page\n1" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 1")
X		    if setCallback ( String "Page\n2" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 2")
X		    if setCallback ( String "Page\n3" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 3")
X		    if setCallback ( String "Page\n4" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 4")
X		    manage "Page\n1" "Page\n2" "Page\n3" "Page\n4"
X		    CuButton { name "Page\n1" set "True" }
X		    CuButton { name "Page\n2" }
X		    CuButton { name "Page\n3" }
X		    CuButton { name "Page\n4" }
X		    }
X		}
X	    }
X	}
X    }
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/bw_menu.wl'\"
if test 1782 -ne `wc -c <'examples/xlayout/bw_menu.wl'`; then
    echo shar: \"'examples/xlayout/bw_menu.wl'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/bw_menu.wl'
fi
if test -f 'examples/xlayout/menu.wl' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xlayout/menu.wl'\"
else
echo shar: Extracting \"'examples/xlayout/menu.wl'\" \(1832 characters\)
sed "s/^X//" >'examples/xlayout/menu.wl' <<'END_OF_FILE'
XCuWlm
X    {
X    *dimFacetColor "SteelBlue"
X    *brightFacetColor "LightSteelBlue"
X    *facetWidth "5"
X    *CuCommand.background "white"
X    *CuCommand.foreground "black"
X    *CuCommand.cursor "dot"
X    *CuLabel.background "LightGray"
X    *CuLabel.borderColor "LightGray"
X    *CuLabel.foreground "black"
X    *CuLabel.facetWidth "0"
X    *CuTbl.internalWidth "20"
X    *CuTbl.internalHeight "20"
X    *CuTbl.interWidth "10"
X    *CuTbl.interHeight "10"
X    CuTbl
X	{
X	formatString "c."
X	background "White"
X	internalWidth "20"
X	internalHeight "20"
X	interWidth "10"
X	interHeight "10"
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "LightGray"
X	    CuLabel { name "Variable Menu Pages" }
X	    CuDeck
X		{
X		name "menu"
X		background "Wheat"
X		internalWidth "50"
X		internalHeight "100"
X		*CuLabel.background "Wheat"
X		*CuLabel.borderColor "Wheat"
X		CuLabel { name "Menu Page 1" }
X		CuLabel { name "Menu Page 2" }
X		CuLabel { name "Menu Page 3" }
X		CuLabel { name "Menu Page 4" }
X		}
X	    }
X
X	CuTbl
X	    {
X	    formatString "c."
X	    background "LightGray"
X	    CuLabel { name "Permanent Menu Buttons" }
X	    CuTbl
X		{
X		formatString "c c."
X		background "Wheat"
X		CuBmgr
X		    {
X		    bmgrType "OneOfMany"
X		    if setCallback ( String "Page\n1" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 1")
X		    if setCallback ( String "Page\n2" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 2")
X		    if setCallback ( String "Page\n3" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 3")
X		    if setCallback ( String "Page\n4" == x )
X			RaiseWidget (CuDeck "menu", CuLabel "Menu Page 4")
X		    manage "Page\n1" "Page\n2" "Page\n3" "Page\n4"
X		    CuButton { name "Page\n1" set "True" }
X		    CuButton { name "Page\n2" }
X		    CuButton { name "Page\n3" }
X		    CuButton { name "Page\n4" }
X		    }
X		}
X	    }
X	}
X    }
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/menu.wl'\"
if test 1833 -ne `wc -c <'examples/xlayout/menu.wl'`; then
    echo shar: \"'examples/xlayout/menu.wl'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/menu.wl'
fi
if test -f 'examples/xlayout/shadow.wc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xlayout/shadow.wc'\"
else
echo shar: Extracting \"'examples/xlayout/shadow.wc'\" \(991 characters\)
sed "s/^X//" >'examples/xlayout/shadow.wc' <<'END_OF_FILE'
X#WLDL
X3
X
X5 CuWlm
X6
X16 CuCommand.cursor 3 (dot) 6 Global
X20 CuCommand.foreground 5 (black) 6 Global
X20 CuCommand.background 5 (white) 6 Global
X10 facetWidth 1 (5) 6 Global
X16 brightFacetColor 14 (LightSteelBlue) 6 Global
X13 dimFacetColor 9 (SteelBlue) 6 Global
X0
X0
X1
X
X  4 CuRc
X  6
X  11 interHeight 2 (10) 5 Local
X  10 interWidth 2 (10) 5 Local
X  14 internalHeight 2 (20) 5 Local
X  13 internalWidth 2 (20) 5 Local
X  10 background 9 (LightGray) 5 Local
X  12 formatString 5 (2 x 2) 5 Local
X  0
X  0
X  4
X
X    9 CuCommand
X    3
X    6 shadow 4 (True) 5 Local
X    13 dimFacetColor 5 (black) 5 Local
X    4 name 6 (Shadow) 5 Local
X    0
X    0
X    0
X
X    9 CuCommand
X    2
X    6 shadow 5 (False) 5 Local
X    4 name 6 (Facets) 5 Local
X    0
X    0
X    0
X
X    9 CuCommand
X    2
X    9 sensitive 4 (True) 5 Local
X    4 name 9 (Sensitive) 5 Local
X    0
X    0
X    0
X
X    9 CuCommand
X    3
X    9 sensitive 5 (False) 5 Local
X    4 name 11 (INSENSITIVE) 5 Local
X    11 borderWidth 1 (0) 5 Local
X    0
X    0
X    0

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xlayout/shadow.wc'\"
if test 992 -ne `wc -c <'examples/xlayout/shadow.wc'`; then
    echo shar: \"'examples/xlayout/shadow.wc'\" unpacked with wrong size!
fi
# end of 'examples/xlayout/shadow.wc'
fi
if test -f 'examples/xtbl/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xtbl/README'\"
else
echo shar: Extracting \"'examples/xtbl/README'\" \(1300 characters\)
sed "s/^X//" >'examples/xtbl/README' <<'END_OF_FILE'
X(Will look funny unless you have patched XtMakeGeometryRequest() !!!)
X
XRun "xtbl 6 -file tst6" for an example of how to modify a layout at runtime.
X
XStep 1 : Hit "_justify_" and the labels will justify as indicated.
XStep 2 : Hit "_gravity_" and the labels will migrate as indicated.
XStep 3 : Hit "_fill_" and two labels will expand to fill slack in their rows
XStep 4 : Hit "_text_" and the top label will change text, forcing the entire
X	 layout to reformat, because the new text is narrower and taller than
X	 the original text.
X
XTo run other examples, the general usage instructions follow.
X
XUsage: xtbl # -file tst#
X    E.g., xtbl 6 -file tst6
Xor,
X
XUsage: xtbl # -string "description"
X    E.g., xtbl 3 -string "tab(;) snl(~);\nc c\nc.\nup~left;up~nright\nbottom"
X
XUser places the resulting window which contains two "CuTbl"s side by side.
XThe left CuTbl is the one given by the file or description string.
XThe right CuTbl is a column of command widgets, which, when activated,
Xread the file indicated by the label to modify the left CuTbl.
XSee the 4 files for format descriptions.  There are commands/files for
Xtext, justification, gravity, and fill mode.
X
X    E.g., if _text_ contains:
X	
X	2
X	0
X	abc
X	1
X	xyz
X
X    The first two CuLabel widgets will have their text changed
X    to "abc" and "xyz".
X
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xtbl/README'\"
if test 1301 -ne `wc -c <'examples/xtbl/README'`; then
    echo shar: \"'examples/xtbl/README'\" unpacked with wrong size!
fi
# end of 'examples/xtbl/README'
fi
if test -f 'examples/xwlm/xwlm.wh' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'examples/xwlm/xwlm.wh'\"
else
echo shar: Extracting \"'examples/xwlm/xwlm.wh'\" \(1393 characters\)
sed "s/^X//" >'examples/xwlm/xwlm.wh' <<'END_OF_FILE'
X#include "CuWlmP.h"
X#include "CuBmgr.h"
X#include "CuButton.h"
X#include "CuDeck.h"
X#include "CuLabel.h"
X#include "CuTbl.h"
X#include "CuWlm.h"
X
Xvoid
Xmake_tag_class_list (ww)
X    CuWlmWidget ww ;
X{
XCuWlmTagClassList *list = NULL ;
XCuWlmTagClassList *save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuBmgr") ;
Xlist->class = cuBmgrWidgetClass ;
Xlist->next = save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuButton") ;
Xlist->class = cuButtonWidgetClass ;
Xlist->next = save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuDeck") ;
Xlist->class = cuDeckWidgetClass ;
Xlist->next = save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuLabel") ;
Xlist->class = cuLabelWidgetClass ;
Xlist->next = save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuTbl") ;
Xlist->class = cuTblWidgetClass ;
Xlist->next = save ;
X
Xsave = list ;
Xlist = (CuWlmTagClassList *) XtMalloc (sizeof (CuWlmTagClassList)) ;
Xlist->quark = XrmStringToQuark ("CuWlm") ;
Xlist->class = cuWlmWidgetClass ;
Xlist->next = save ;
X
Xww->wlm.tag_class_list = list ;
Xreturn ;
X}
X

END_OF_FILE
echo shar: NEWLINE appended to \"'examples/xwlm/xwlm.wh'\"
if test 1394 -ne `wc -c <'examples/xwlm/xwlm.wh'`; then
    echo shar: \"'examples/xwlm/xwlm.wh'\" unpacked with wrong size!
fi
# end of 'examples/xwlm/xwlm.wh'
fi
if test -f 'man/CuBmgrR.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/CuBmgrR.man'\"
else
echo shar: Extracting \"'man/CuBmgrR.man'\" \(1414 characters\)
sed "s/^X//" >'man/CuBmgrR.man' <<'END_OF_FILE'
X.TH CuBmgrTypeR 3X "\fBCornell University Widget Set\fR"
X.ad b
X.de}F    
X.ds)H Program of Computer Graphics
X.ev1
X.}E
X.if\\n()s 'sp |\\n(.pu-1v-1p
X.if\\n()t 'sp |\\n(.pu-3v
X.ifn 'sp |\\n(.pu-4v
X.tl\\*()H- % -\\*(]W
X'bp
X.ev
X..
X.SH NAME
XCuBmgrTypeR \- CuBmgrType resource for the CuBmgr widget.
X.sp
X.TS
Xtab(;);
X|c s s s s|.
X_
XCuBmgrType Resource
X.T&
X|lB |lB |lB |lB s|.
X_
XName;Type;Converter Registration;Converts
X.T&
X|lB |lB |lB |lB lB|.
X ; ; ;From;To
X=
X.T&
X|lB l l l l|.
XXtNbmgrType;CuBmgrType;CuAddStringToBmgrTypeConverter();"AnyOfMany";CuBmgrAnyOfMany
X.T&
X|lB l l l l|.
X ; ; ;"OneOfMany";CuBmgrOneOfMany
X ; ; ;"SingleToggle";CuBmgrSingleToggle
X ; ; ;"DoubleToggle";CuBmgrDoubleToggle
X ; ; ;"Transient";CuBmgrTransient
X_
X.TE
X.sp
XActually, each of the above strings can be substituted by a variety of strings.
XUnderscores are stripped out, uppercase is converted to lowercase, and
Xleading "bmgr" sequences are stripped off.
XFor example, "AnyOfMany" could also be set to: "any_of_many", "anyOfMany",
X"Any_of_many", "CuBmgrAnyOfMany", etc.
X.ne 4
X.SH DESCRIPTION
X\ 
XThe CuBmgrType resource is used by the CuBmgr widget to determine the
Xsemantics for a group of CuButton widgets.
X.ne 4
X.SH NOTE
X\ 
X.br
XAutomatically called by the class_initialize procedures of \fBCuBmgr\fR and
X\fBCuWlm\fR.
X.ne 4
X.SH AUTHOR
X\ 
X.br
XGene Dykes, \fIgwd@freedom.tn.cornell.edu\fR
X.br
XProgram of Computer Graphics, Cornell University
X

END_OF_FILE
echo shar: NEWLINE appended to \"'man/CuBmgrR.man'\"
echo shar: 4 control characters may be missing from \"'man/CuBmgrR.man'\"
if test 1415 -ne `wc -c <'man/CuBmgrR.man'`; then
    echo shar: \"'man/CuBmgrR.man'\" unpacked with wrong size!
fi
# end of 'man/CuBmgrR.man'
fi
if test -f 'man/CuButton.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/CuButton.man'\"
else
echo shar: Extracting \"'man/CuButton.man'\" \(1363 characters\)
sed "s/^X//" >'man/CuButton.man' <<'END_OF_FILE'
X.TH CuButton 3X "\fBCornell University Widget Set\fR"
X.ad b
X.de}F    
X.ds)H Program of Computer Graphics
X.ev1
X.}E
X.if\\n()s 'sp |\\n(.pu-1v-1p
X.if\\n()t 'sp |\\n(.pu-3v
X.ifn 'sp |\\n(.pu-4v
X.tl\\*()H- % -\\*(]W
X'bp
X.ev
X..
X.SH NAME
XCuButton \- Display labels in a set or unset state.
X.ne 4
X.SH CLASS HIERARCHY
X\ 
X.br
XCore / CuSimple / CuLabel / CuButton
X.ne 4
X.SH NEW RESOURCES
X\ 
X.br
X.TS
Xallbox tab(;);
Xc s s s.
XCuButton Resources
X.T&
XlB lB lB lB.
XName;Type;Default;Description
X_
X.T&
XlB l l l.
XXtNcallback;Callback;;Btn1Down and Btn1Up events
XXtNcursor;Cursor;"dot";Provides a default cursor
XXtNset;Boolean;False;Set/Unset state
X.TE
X.ne 4
X.SH DESCRIPTION
X\ 
X.br
XThe \fBCuButton\fR  widget can display itself in either a set or unset state.
XIt does not, however, decide for itself what its appropriate state is.
XInstead, it reports mouse button events back to its client via callbacks, and
Xrelies on the client appropriately setting the \fBCuButton\fR's set resource.
XThe call_data is 'd' for Btn1Down events and 'u' for Btn1Up events.
XThe unset state colors are the inverse colors of the set state.
XWidgets of class \fBcuButtonWidgetClass\fR are required by \fBCuBmgr\fR.
X.ne 4
X.SH SEE ALSO
X\ 
X.br
XCuBmgr(3X), CuLabel(3X), CuSimple(3X)
X.ne 4
X.SH AUTHOR
X\ 
X.br
XGene Dykes, \fIgwd@freedom.tn.cornell.edu\fR
X.br
XProgram of Computer Graphics, Cornell University
X

END_OF_FILE
echo shar: NEWLINE appended to \"'man/CuButton.man'\"
echo shar: 4 control characters may be missing from \"'man/CuButton.man'\"
if test 1364 -ne `wc -c <'man/CuButton.man'`; then
    echo shar: \"'man/CuButton.man'\" unpacked with wrong size!
fi
# end of 'man/CuButton.man'
fi
if test -f 'man/CuDeck.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/CuDeck.man'\"
else
echo shar: Extracting \"'man/CuDeck.man'\" \(1941 characters\)
sed "s/^X//" >'man/CuDeck.man' <<'END_OF_FILE'
X.TH CuDeck 3X "\fBCornell University Widget Set\fR"
X.ad b
X.de}F    
X.ds)H Program of Computer Graphics
X.ev1
X.}E
X.if\\n()s 'sp |\\n(.pu-1v-1p
X.if\\n()t 'sp |\\n(.pu-3v
X.ifn 'sp |\\n(.pu-4v
X.tl\\*()H- % -\\*(]W
X'bp
X.ev
X..
X.SH NAME
XCuDeck \- Geometry manager for a deck of widgets
X.ne 4
X.SH CLASS HIERARCHY
X\ 
X.br
XCore / Composite / CuDeck
X.ne 4
X.SH DESCRIPTION
X\ 
X.br
XThe \fBCuDeck\fR  geometry manager
Xmaintains its children so that they are all the same size and occupy the
Xsame location so that only one at a time is visible.
X.ne 4
X.SH NEW RESOURCES
X\ 
X.br
X.TS
Xallbox tab(;);
Xc s s s.
XCuDeck Resources
X.T&
XlB lB lB lB.
XName;Type;Default;Description
X_
X.T&
XlB l l l.
XXtNinternalHeight;Dimension;0;Vt distance between parent and children
XXtNinternalWidth;Dimension;0;Hz distance between parent and children
XXtNresizeParticipants;CuResizeParticipants;T{
X.na
XCuResizeInternals |
XCuResizeChildren 
X.ad
XT};Things that adjust during resizes
X.TE
X.ne 4
X.SH CALLBACKS
X\ 
X.br
X\fBXtNcallback\fR
X.sp
X.in +5
XCallbacks in this callback list are called whenever the stacking order of the
Xdeck changes.
XThe call_data is a Widget pointer, which points to a sequence of widget id's
Xthat represent the current stacking order, from highest to lowest.
X.in -5
X.ne 4
X.SH PUBLIC FUNCTIONS
X\ 
X.br
XCuDeckRaiseLowest ( CuDeckWidget )
X.in +5
XThe child widget at the bottom of the stacking order
Xis placed at the top of the deck.
X.in -5
X.sp
XCuDeckLowerHighest ( CuDeckWidget )
X.in +5
XThe child widget at the top of the stacking order
Xis placed at the bottom of the deck.
X.in -5
X.sp
XCuDeckRaiseWidget ( CuDeckWidget,  Widget )
X.in +5
XThe specified child is placed at the top of the deck.
X.in -5
X.ne 4
X.SH DIAGNOSTICS
X\ 
X.br
XIf the widget specified in a \fBCuDeckRaiseWidget()\fR function is not a child
Xof the \fBCuDeck\fR, a warning is issued.
X.ne 4
X.SH AUTHOR
X\ 
X.br
XGene Dykes, \fIgwd@freedom.tn.cornell.edu\fR
X.br
XProgram of Computer Graphics, Cornell University
X

END_OF_FILE
echo shar: NEWLINE appended to \"'man/CuDeck.man'\"
echo shar: 4 control characters may be missing from \"'man/CuDeck.man'\"
if test 1942 -ne `wc -c <'man/CuDeck.man'`; then
    echo shar: \"'man/CuDeck.man'\" unpacked with wrong size!
fi
# end of 'man/CuDeck.man'
fi
if test -f 'man/CuGravityR.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/CuGravityR.man'\"
else
echo shar: Extracting \"'man/CuGravityR.man'\" \(1351 characters\)
sed "s/^X//" >'man/CuGravityR.man' <<'END_OF_FILE'
X.TH CuGravityR 3X "\fBCornell University Widget Set\fR"
X.ad b
X.de}F    
X.ds)H Program of Computer Graphics
X.ev1
X.}E
X.if\\n()s 'sp |\\n(.pu-1v-1p
X.if\\n()t 'sp |\\n(.pu-3v
X.ifn 'sp |\\n(.pu-4v
X.tl\\*()H- % -\\*(]W
X'bp
X.ev
X..
X.SH NAME
XCuGravityR \- Gravity resource for CuWidgets.
X.sp
X.TS
Xtab(;);
X|c s s s s|.
X_
XCuGravity Resource
X.T&
X|lB |lB |lB |lB s|.
X_
XName;Type;Converter Registration;Converts
X.T&
X|lB |lB |lB |lB cB|.
X ; ; ;From;To
X=
X.T&
X|lB l l l l|.
XXtNgravity;CuGravity;CuAddStringToGravityConverter();"n";CuNorthGravity
X.T&
X|lB l l l l|.
X ; ; ;"e";CuEastGravity
X ; ; ;"s";CuSouthGravity
X ; ; ;"w";CuWestGravity
X ; ; ;"ne";CuNorthEastGravity
X ; ; ;"nw";CuNorthWestGravity
X ; ; ;"se";CuSouthEastGravity
X ; ; ;"sw";CuSouthWestGravity
X ; ; ;"c";CuCenterGravity
X_
X.TE
X.ne 4
X.SH DESCRIPTION
X\ 
XThe CuGravity resource is used by the CuWidgets to determine where
Xthe widget contents should be placed within a window that is larger than
Xthe widget's minimum required size.
X.ne 4
X.SH FUTURE ENHANCEMENTS
X\ 
X.br
XAccept a wider variety of strings.  E.g., in addition to "n", accept
X"north", "North", "CuNorth", etc.
X.ne 4
X.SH NOTE
X\ 
X.br
XAutomatically called by the class_initialize procedures of \fBCuLabel\fR and
X\fBCuTbl\fR.
X.ne 4
X.SH AUTHOR
X\ 
X.br
XGene Dykes, \fIgwd@freedom.tn.cornell.edu\fR
X.br
XProgram of Computer Graphics, Cornell University
X

END_OF_FILE
echo shar: NEWLINE appended to \"'man/CuGravityR.man'\"
echo shar: 4 control characters may be missing from \"'man/CuGravityR.man'\"
if test 1352 -ne `wc -c <'man/CuGravityR.man'`; then
    echo shar: \"'man/CuGravityR.man'\" unpacked with wrong size!
fi
# end of 'man/CuGravityR.man'
fi
if test -f 'man/CuJustifyR.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'man/CuJustifyR.man'\"
else
echo shar: Extracting \"'man/CuJustifyR.man'\" \(1162 characters\)
sed "s/^X//" >'man/CuJustifyR.man' <<'END_OF_FILE'
X.TH CuJustifyR 3X "\fBCornell University Widget Set\fR"
X.ad b
X.de}F    
X.ds)H Program of Computer Graphics
X.ev1
X.}E
X.if\\n()s 'sp |\\n(.pu-1v-1p
X.if\\n()t 'sp |\\n(.pu-3v
X.ifn 'sp |\\n(.pu-4v
X.tl\\*()H- % -\\*(]W
X'bp
X.ev
X..
X.SH NAME
XCuJustifyR \- Justify Resource for CuWidgets
X.sp
X.TS
Xtab(;);
X|c s s s s|.
X_
XCuJustify Resource
X.T&
X|lB |lB |lB |lB s|.
X_
XName;Type;Converter Registration;Converts
X.T&
X|lB |lB |lB |lB cB|.
X ; ; ;From;To
X=
X.T&
X|lB l l l l|.
XXtNjustify;CuJustify;CuAddStringToJustifyConverter();"left";CuJustifyLeft
X.T&
X|lB l l l l|.
X ; ; ;"right";CuJustifyRight
X ; ; ;"center";CuJustifyCenter
X_
X.TE
X.ne 4
X.SH DESCRIPTION
X\ 
XThe CuJustify resource is used by the CuLabel widget to determine how
Xto align multiple lines of text.
X.ne 4
X.SH NOTES
X\ 
X.br
XAutomatically called by the class_initialize procedures of \fBCuLabel\fR and
X\fBCuTbl\fR.
X.sp
XDo not confuse this resource with CuGravity.
X.ne 4
X.SH FUTURE ENHANCEMENTS
X\ 
X.br
XAccept a wider variety of strings.  E.g., in addition to "left", accept
X"Left", "CuLeft", etc.
X.ne 4
X.SH AUTHOR
X\ 
X.br
XGene Dykes, \fIgwd@freedom.tn.cornell.edu\fR
X.br
XProgram of Computer Graphics, Cornell University
X

END_OF_FILE
echo shar: NEWLINE appended to \"'man/CuJustifyR.man'\"
echo shar: 4 control characters may be missing from \"'man/CuJustifyR.man'\"
if test 1163 -ne `wc -c <'man/CuJustifyR.man'`; then
    echo shar: \"'man/CuJustifyR.man'\" unpacked with wrong size!
fi
# end of 'man/CuJustifyR.man'
fi
if test -f 'src/CuBmgrP.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuBmgrP.h'\"
else
echo shar: Extracting \"'src/CuBmgrP.h'\" \(1137 characters\)
sed "s/^X//" >'src/CuBmgrP.h' <<'END_OF_FILE'
X/* 
X * CuBmgrP.h - Private definitions for CuBmgr widget
X */
X
X#ifndef _Cu_BmgrP_h
X#define _Cu_BmgrP_h
X
X#include "CuButtonP.h"
X#include "CuProcedureR.h"
X#include "CuBmgrR.h"
X#include "CuBmgr.h"
X
X/* New fields for the CuBmgr widget class record */
X
Xtypedef struct {int foo ;} CuBmgrClassPart ;
X
X/* Full class record declaration */
Xtypedef struct _CuBmgrClassRec
X    {
X    CoreClassPart	core_class ;
X    CuBmgrClassPart	bmgr_class ;
X    } CuBmgrClassRec ;
X
Xextern CuBmgrClassRec cuBmgrClassRec ;
X
X/* New fields for the CuBmgr widget record */
X
Xtypedef struct
X    {
X    Boolean	down_action ;
X    CuBmgrType	bmgr_type ;
X    /***
X    Boolean	selectable ;
X    Cardinal	min_set ;
X    Cardinal	max_set ;
X    ***/
X    XtCallbackList set_callbacks;
X    XtCallbackList unset_callbacks;
X    XtCallbackList illegal_callbacks;
X    XtProcedureList *procedure_list ;
X
X    /* private state */
X    Cardinal	 n_buttons ;
X    CuButtonWidget *buttons ;
X    caddr_t	 *button_values ;
X    } CuBmgrPart ;
X
X/*
X * Full instance record declaration
X */
X
Xtypedef struct _CuBmgrRec
X    {
X    CorePart	core ;
X    CuBmgrPart	bmgr ;
X    } CuBmgrRec ;
X
X#endif _Cu_BmgrP_h

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuBmgrP.h'\"
if test 1138 -ne `wc -c <'src/CuBmgrP.h'`; then
    echo shar: \"'src/CuBmgrP.h'\" unpacked with wrong size!
fi
# end of 'src/CuBmgrP.h'
fi
if test -f 'src/CuButtonP.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuButtonP.h'\"
else
echo shar: Extracting \"'src/CuButtonP.h'\" \(1701 characters\)
sed "s/^X//" >'src/CuButtonP.h' <<'END_OF_FILE'
X/* 
X * CuButtonP.h - Private definitions for CuButton widget
X */
X
X#ifndef _Cu_ButtonP_h
X#define _Cu_ButtonP_h
X
X#include "CuButton.h"
X#include "CuLabelP.h"
X#include "CuSimpleP.h"
X
X/***********************************************************************
X *
X * CuButton Widget Private Data
X *
X ***********************************************************************/
X
X/************************************
X *
X *  Class structure
X *
X ***********************************/
X
X
X   /* New fields for the CuButton widget class record */
Xtypedef struct _CuButtonClass 
X  {
X    int makes_compiler_happy;  /* not used */
X  } CuButtonClassPart;
X
X   /* Full class record declaration */
Xtypedef struct _CuButtonClassRec {
X    CoreClassPart	core_class;
X    CuSimpleClassPart	simple_class;
X    CuLabelClassPart	label_class;
X    CuButtonClassPart     button_class;
X} CuButtonClassRec;
X
Xextern CuButtonClassRec cuButtonClassRec;
X
X/***************************************
X *
X *  Instance (widget) structure 
X *
X **************************************/
X
X    /* New fields for the CuButton widget record */
Xtypedef struct {
X    /* resources */
X    XtCallbackList callbacks;
X
X    /* private state */
X    Pixmap      gray_pixmap;
X    GC          highlight_GC;
X    GC          inverse_GC;
X    GC          inverse_text_GC;
X    GC          normal_GC;
X    GC          gray_GC;
X    Boolean     set;
X    Boolean     display_set;
X    Boolean     display_highlighted;
X} CuButtonPart;
X
X
X/*    XtEventsPtr eventTable;*/
X
X
X   /* Full widget declaration */
Xtypedef struct _CuButtonRec {
X    CorePart         core;
X    CuSimplePart     simple;
X    CuLabelPart	     label;
X    CuButtonPart     button;
X} CuButtonRec;
X
X#endif _Cu_ButtonP_h
X
X

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuButtonP.h'\"
if test 1702 -ne `wc -c <'src/CuButtonP.h'`; then
    echo shar: \"'src/CuButtonP.h'\" unpacked with wrong size!
fi
# end of 'src/CuButtonP.h'
fi
if test -f 'src/CuCommandP.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuCommandP.h'\"
else
echo shar: Extracting \"'src/CuCommandP.h'\" \(1759 characters\)
sed "s/^X//" >'src/CuCommandP.h' <<'END_OF_FILE'
X/* 
X * CuCommandP.h - Private definitions for CuCommand widget
X */
X
X#ifndef _Cu_CommandP_h
X#define _Cu_CommandP_h
X
X#include "disclaimer.h"
X#include "CuCommand.h"
X#include "CuLabelP.h"
X
X/***********************************************************************
X *
X * CuCommand Widget Private Data
X *
X ***********************************************************************/
X
X/************************************
X *
X *  Class structure
X *
X ***********************************/
X
X
X   /* New fields for the CuCommand widget class record */
Xtypedef struct _CuCommandClass 
X  {
X    int makes_compiler_happy;  /* not used */
X  } CuCommandClassPart;
X
X   /* Full class record declaration */
Xtypedef struct _CuCommandClassRec {
X    CoreClassPart	core_class;
X    CuSimpleClassPart	simple_class;
X    CuLabelClassPart	label_class;
X    CuCommandClassPart    command_class;
X} CuCommandClassRec;
X
Xextern CuCommandClassRec cuCommandClassRec;
X
X/***************************************
X *
X *  Instance (widget) structure 
X *
X **************************************/
X
X    /* New fields for the CuCommand widget record */
Xtypedef struct {
X    /* resources */
X    Dimension   highlight_thickness;
X    XtCallbackList callbacks;
X
X    /* private state */
X    Pixmap      gray_pixmap;
X    GC          highlight_GC;
X    GC          inverse_GC;
X    GC          inverse_text_GC;
X    GC          normal_GC;
X    GC          gray_GC;
X    Boolean     set;
X    Boolean     display_set;
X    Boolean     display_highlighted;
X} CuCommandPart;
X
X
X/*    XtEventsPtr eventTable;*/
X
X
X   /* Full widget declaration */
Xtypedef struct _CuCommandRec {
X    CorePart         core;
X    CuSimplePart     simple;
X    CuLabelPart	     label;
X    CuCommandPart    command;
X} CuCommandRec;
X
X#endif _Cu_CommandP_h
X
X

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuCommandP.h'\"
if test 1760 -ne `wc -c <'src/CuCommandP.h'`; then
    echo shar: \"'src/CuCommandP.h'\" unpacked with wrong size!
fi
# end of 'src/CuCommandP.h'
fi
if test -f 'src/CuGravityR.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuGravityR.c'\"
else
echo shar: Extracting \"'src/CuGravityR.c'\" \(2152 characters\)
sed "s/^X//" >'src/CuGravityR.c' <<'END_OF_FILE'
X#include <X11/Intrinsic.h>
X#include <X11/StringDefs.h>
X#include "CuGravityR.h"
X
X/**
X *** Resource Converter Name
X **/
X
Xstatic void CvtStringToGravity() ;	/* Resource Converter */
X
X/**
X *** Resource Converter Quarks
X **/
X
Xstatic XrmQuark	XrmQEn, XrmQEne, XrmQEe, XrmQEse,	/* Gravity */
X	        XrmQEs, XrmQEsw, XrmQEw, XrmQEnw, XrmQEc ;
X
X/**
X *** Resource Converter AddConverter Routine
X **/
X
Xvoid
XCuAddStringToGravityConverter ()
X{
Xstatic Boolean first_time = True ;
Xif (first_time)
X    {
X    XrmQEn   = XrmStringToQuark("n") ;
X    XrmQEe   = XrmStringToQuark("e") ;
X    XrmQEs   = XrmStringToQuark("s") ;
X    XrmQEw   = XrmStringToQuark("w") ;
X    XrmQEne   = XrmStringToQuark("ne") ;
X    XrmQEnw   = XrmStringToQuark("nw") ;
X    XrmQEse   = XrmStringToQuark("se") ;
X    XrmQEsw   = XrmStringToQuark("sw") ;
X    XrmQEc   = XrmStringToQuark("c") ;
X    XtAddConverter( XtRString, XtRGravity, CvtStringToGravity, NULL, 0 ) ;
X    first_time = False ;
X    }
Xreturn ;
X}
X
X/**
X *** Resource Converter
X **/
X
X#include <ctype.h>
X
X/*
X * Convert String To Gravity
X */
X
Xstatic void
XCvtStringToGravity(args, num_args, fromVal, toVal)
X    XrmValuePtr *args ;		/* unused */
X    Cardinal	*num_args ;	/* unused */
X    XrmValuePtr fromVal ;
X    XrmValuePtr toVal ;
X{
Xstatic CuGravity	e ; /* must be static! */
XXrmQuark	q ;
XCardinal	i ;
Xchar	*s = (char *) fromVal->addr ;
Xchar    lowerName[1000] ;
X
Xif (s == NULL) return ;
X
Xfor (i=0; i<=strlen(s); i++)
X    {
X    char c = s[i] ;
X    lowerName[i] = isupper(c) ? (char) tolower(c) : c ;
X    }
X
Xq = XrmStringToQuark(lowerName) ;
X
XtoVal->size = sizeof(CuGravity) ;
XtoVal->addr = (caddr_t) &e ;
X
Xif (q == XrmQEn)	{ e = CuNorthGravity;   return; }
Xif (q == XrmQEe)	{ e = CuEastGravity;   return; }
Xif (q == XrmQEs)	{ e = CuSouthGravity;   return; }
Xif (q == XrmQEw)	{ e = CuWestGravity;   return; }
Xif (q == XrmQEne)	{ e = CuNorthEastGravity;   return; }
Xif (q == XrmQEnw)	{ e = CuNorthWestGravity;   return; }
Xif (q == XrmQEse)	{ e = CuSouthEastGravity;   return; }
Xif (q == XrmQEsw)	{ e = CuSouthWestGravity;   return; }
Xif (q == XrmQEc)	{ e = CuCenterGravity;   return; }
X
XtoVal->size = 0 ;
XtoVal->addr = NULL ;
Xreturn ;
X}
X

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuGravityR.c'\"
if test 2153 -ne `wc -c <'src/CuGravityR.c'`; then
    echo shar: \"'src/CuGravityR.c'\" unpacked with wrong size!
fi
# end of 'src/CuGravityR.c'
fi
if test -f 'src/CuJustifyR.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuJustifyR.c'\"
else
echo shar: Extracting \"'src/CuJustifyR.c'\" \(1582 characters\)
sed "s/^X//" >'src/CuJustifyR.c' <<'END_OF_FILE'
X#include <X11/Intrinsic.h>
X#include <X11/StringDefs.h>
X#include "CuJustifyR.h"
X
X/**
X *** Resource Converter Name
X **/
X
Xstatic void CvtStringToJustify() ;	/* Resource Converter */
X
X/**
X *** Resource Converter Quarks
X **/
X
Xstatic XrmQuark	XrmQEleft, XrmQEcenter, XrmQEright ;	/* Justification */
X
X/**
X *** Resource Converter AddConverter Routine
X **/
X
Xvoid
XCuAddStringToJustifyConverter ()
X{
Xstatic Boolean first_time = True ;
Xif (first_time)
X    {
X    XrmQEleft   = XrmStringToQuark("left") ;
X    XrmQEcenter = XrmStringToQuark("center") ;
X    XrmQEright  = XrmStringToQuark("right") ;
X    XtAddConverter( XtRString, XtRJustify, CvtStringToJustify, NULL, 0 ) ;
X    first_time = False ;
X    }
Xreturn ;
X}
X
X/**
X *** Resource Converter Routine
X **/
X
X#include <ctype.h>
X
X/*
X * Convert String To Justify
X */
X
Xstatic void CvtStringToJustify(args, num_args, fromVal, toVal)
X    XrmValuePtr *args ;		/* unused */
X    Cardinal	*num_args ;	/* unused */
X    XrmValuePtr fromVal ;
X    XrmValuePtr toVal ;
X{
Xstatic CuJustify	e ; /* must be static! */
XXrmQuark	q ;
XCardinal	i ;
Xchar	*s = (char *) fromVal->addr ;
Xchar    lowerName[1000] ;
X
Xif (s == NULL) return ;
X
Xfor (i=0; i<=strlen(s); i++)
X    {
X    char c = s[i] ;
X    lowerName[i] = isupper(c) ? (char) tolower(c) : c ;
X    }
X
Xq = XrmStringToQuark(lowerName) ;
X
XtoVal->size = sizeof(CuJustify) ;
XtoVal->addr = (caddr_t) &e ;
X
Xif (q == XrmQEleft)   { e = CuJustifyLeft;   return; }
Xif (q == XrmQEcenter) { e = CuJustifyCenter; return; }
Xif (q == XrmQEright)  { e = CuJustifyRight;  return; }
X
XtoVal->size = 0 ;
XtoVal->addr = NULL ;
Xreturn ;
X}

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuJustifyR.c'\"
if test 1583 -ne `wc -c <'src/CuJustifyR.c'`; then
    echo shar: \"'src/CuJustifyR.c'\" unpacked with wrong size!
fi
# end of 'src/CuJustifyR.c'
fi
if test -f 'src/CuLabelP.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuLabelP.h'\"
else
echo shar: Extracting \"'src/CuLabelP.h'\" \(1589 characters\)
sed "s/^X//" >'src/CuLabelP.h' <<'END_OF_FILE'
X/* 
X * CuLabelP.h - Private definitions for CuLabel widget
X */
X
X#ifndef _Cu_LabelP_h
X#define _Cu_LabelP_h
X
X#include "CuLabel.h"
X#include "CuSimpleP.h"
X
X/* New fields for the CuLabel widget class record */
X
Xtypedef struct
X    {
X    XtProc	redisplay_text ;
X    } CuLabelClassPart;
X
X
X/* Full class record declaration */
Xtypedef struct _CuLabelClassRec
X    {
X    CoreClassPart	core_class ;
X    CuSimpleClassPart	simple_class ;
X    CuLabelClassPart	label_class ;
X    } CuLabelClassRec ;
X
Xextern CuLabelClassRec cuLabelClassRec ;
X
X/* New fields for the CuLabel widget record */
X
Xtypedef struct
X    {
X    /* resources */
X    Pixel	foreground ;
X    XFontStruct	*font ;
X    String	label ;
X    String	big_label ;
X    CuJustify	justify ;
X    CuGravity	gravity ;
X    Dimension	internal_width ;
X    Dimension	internal_height ;
X    float	line_factor ;
X    Pixmap	pixmap ;
X
X    /* private state */
X    GC		sensitive_text_GC ;
X    GC		insensitive_text_GC ;
X    GC		background_GC ;
X    Position	*x ;
X    Position	*y ;
X    int		total_height ;
X    int		total_width ;
X    int		depth ;
X    int		big_height ;
X    int		big_width ;
X    int		line_height ;
X    int		*line_width ;
X    unsigned int *len ;
X    unsigned int *locations ;
X    unsigned int n_lines ;
X    Boolean	newlines_found ;
X    Boolean	needs_fill ;
X    } CuLabelPart ;
X
X
X/*
X * Full instance record declaration
X */
X
Xtypedef struct _CuLabelRec
X    {
X    CorePart	 core ;
X    CuSimplePart simple ;
X    CuLabelPart	 label ;
X    } CuLabelRec ;
X
X/*
X * Inheritance definitions
X */
X
X#define XtInheritRedisplayText ((XtProc) _XtInherit)
X
X#endif _Cu_LabelP_h

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuLabelP.h'\"
if test 1590 -ne `wc -c <'src/CuLabelP.h'`; then
    echo shar: \"'src/CuLabelP.h'\" unpacked with wrong size!
fi
# end of 'src/CuLabelP.h'
fi
if test -f 'src/CuSimple.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuSimple.h'\"
else
echo shar: Extracting \"'src/CuSimple.h'\" \(1446 characters\)
sed "s/^X//" >'src/CuSimple.h' <<'END_OF_FILE'
X#include <X11/copyright.h>
X#include <X11/Core.h>
X#ifdef CompositeSimple
X#include <X11/Composite.h>
X#endif
X
X#ifndef _Cu_Simple_h
X#define _Cu_Simple_h
X
X/* CuSimple */
X
X#define XtNfirstExpose		"firstExpose"
X#define XtNresize		"resize"
X#define XtNcursor		"cursor"
X#define XtNinsensitiveBorder	"insensitiveBorder"
X#define XtNcursorForeground	"cursorForeground"
X#define XtNcursorBackground	"cursorBackground"
X
X#define XtCCursor		"Cursor"
X#define XtCInsensitive		"Insensitive"
X#define XtCCursorForeground	"CursorCoreground"
X#define XtCCursorBackground	"CursorCackground"
X
X/* Facet */
X
X#define XtNdimFacetColor	"dimFacetColor"
X#define XtNbrightFacetColor	"brightFacetColor"
X#define XtNhighlightColor	"highlightColor"
X#define XtNhighlightWidth	"highlightWidth"
X#define XtNfacetWidth		"facetWidth"
X#define XtNshadow		"shadow"
X
X#define XtCDimFacetColor	"dimFacetColor"
X#define XtCBrightFacetColor	"brightFacetColor"
X#define XtCFacetWidth		"facetWidth"
X#define XtCHighlightColor	"highlightColor"
X#define XtCHighlightWidth	"highlightWidth"
X#define XtCShadow		"shadow"
X
Xtypedef struct _CuSimpleClassRec *CuSimpleWidgetClass;
Xtypedef struct _CuSimpleRec	 *CuSimpleWidget;
X#ifdef CompositeSimple
Xtypedef struct _CuSimpleCompClassRec *CuSimpleCompWidgetClass;
Xtypedef struct _CuSimpleCompRec      *CuSimpleCompWidget;
X#endif
X
Xextern WidgetClass cuSimpleWidgetClass;
X#ifdef CompositeSimple
Xextern WidgetClass cuSimpleCompWidgetClass ;
X#endif
X
X#endif  _Cu_Simple_h

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuSimple.h'\"
if test 1447 -ne `wc -c <'src/CuSimple.h'`; then
    echo shar: \"'src/CuSimple.h'\" unpacked with wrong size!
fi
# end of 'src/CuSimple.h'
fi
if test -f 'src/CuSimpleP.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuSimpleP.h'\"
else
echo shar: Extracting \"'src/CuSimpleP.h'\" \(2225 characters\)
sed "s/^X//" >'src/CuSimpleP.h' <<'END_OF_FILE'
X#include <X11/copyright.h>
X
X#ifndef _Cu_SimpleP_h
X#define _Cu_SimpleP_h
X
X#include "CuSimple.h"
X#include <X11/CoreP.h>
X#ifdef CompositeSimple
X#include <X11/CompositeP.h>
X#endif
X
Xtypedef struct {
X    XtProc	change_sensitive;
X    XtProc	draw_facets;		/* draw the facet parts   */
X    XtProc	draw_highlight;		/* display a highlighted border*/
X} CuSimpleClassPart;
X
X/* Full class record declaration */
X
Xtypedef struct _CuSimpleClassRec {
X    CoreClassPart	core_class;
X    CuSimpleClassPart	simple_class;
X} CuSimpleClassRec;
X
Xextern CuSimpleClassRec cuSimpleClassRec;
X
Xtypedef struct {
X    /* resources */
X    Cursor	cursor;
X    Pixmap	insensitive_border;
X    XtCallbackList firstExposeCallbacks;
X    XtCallbackList resizeCallbacks;
X
X    Pixel	dim_facet_color;        /* color of the dim facets	*/
X    Pixel	bright_facet_color;     /* color of the bright facets	*/
X    Pixel       highlight_color;        /* for subclass convenience	*/
X    Pixel	cursor_foreground;	/*				*/
X    Pixel	cursor_background;	/*				*/
X    Pixel	background_pixel;	/*				*/
X    Dimension   facet_width;		/* facet width			*/
X    Dimension   highlight_width;	/* highlight width		*/
X    Dimension   save_border_width;	/* saved core.border_width	*/
X    Boolean     shadow;			/* shadow instead of facet	*/
X    Boolean     first_expose;		/* True until first exposure	*/
X
X    /* private state */
X    XColor	cursor_fg;
X    XColor	cursor_bg;
X    GC          dim_facet_GC;
X    GC		bright_facet_GC;
X    GC		highlight_GC;
X    GC		background_GC;
X    Boolean     highlighted;
X} CuSimplePart;
X
Xtypedef struct _CuSimpleRec {
X    CorePart	core;
X    CuSimplePart	simple;
X} CuSimpleRec;
X
X#define XtInheritChangeSensitive ((XtProc) _XtInherit)
X#define XtInheritDrawFacets     ((XtProc) _XtInherit)
X#define XtInheritDrawHighlight ((XtProc) _XtInherit)
X
X#ifdef CompositeSimple
X
Xtypedef struct _CuSimpleCompClassRec {
X    CoreClassPart	core_class ;
X    CompositeClassPart	composite_class ;
X    CuSimpleClassPart	simple_class ;
X} CuSimpleCompClassRec;
X
Xextern CuSimpleCompClassRec cuSimpleCompClassRec;
X
Xtypedef struct _CuSimpleCompRec {
X    CorePart		core ;
X    CompositePart	composite ;
X    CuSimplePart	simple ;
X} CuSimpleCompRec;
X#endif  CompositeSimple
X#endif  _Cu_SimpleP_h

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuSimpleP.h'\"
if test 2226 -ne `wc -c <'src/CuSimpleP.h'`; then
    echo shar: \"'src/CuSimpleP.h'\" unpacked with wrong size!
fi
# end of 'src/CuSimpleP.h'
fi
if test -f 'src/CuSimpleR.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/CuSimpleR.h'\"
else
echo shar: Extracting \"'src/CuSimpleR.h'\" \(1589 characters\)
sed "s/^X//" >'src/CuSimpleR.h' <<'END_OF_FILE'
X/* Simple */
X  {XtNcursor, XtCCursor, XtRCursor, sizeof(Cursor),
X     offset(cursor), XtRCursor, (caddr_t)&defaultCursor},
X  {XtNinsensitiveBorder, XtCInsensitive, XtRPixmap, sizeof(Pixmap),
X     offset(insensitive_border), XtRPixmap, (caddr_t)&defaultPixmap},
X/* Facet */
X    {XtNdimFacetColor, XtCDimFacetColor, XtRPixel, 
X        sizeof(Pixel), offset(dim_facet_color),
X        XtRString,(caddr_t)"Black"},
X    {XtNbrightFacetColor, XtCBrightFacetColor, XtRPixel, 
X        sizeof(Pixel), offset(bright_facet_color),
X        XtRString,(caddr_t)"White"},
X    {XtNhighlightColor, XtCHighlightColor, XtRPixel, 
X        sizeof(Pixel), offset(highlight_color),
X        XtRString,(caddr_t)"White"},
X    {XtNhighlightWidth, XtCHighlightWidth, XtRDimension, sizeof(Dimension),
X	offset(highlight_width), XtRDimension, (caddr_t)&defHighlightWidth},
X    {XtNfacetWidth, XtCFacetWidth, XtRDimension, sizeof(Dimension),
X	offset(facet_width), XtRDimension, (caddr_t)&defFacetWidth},
X    {XtNcursorForeground, XtCCursorForeground, XtRPixel, sizeof(Pixel),
X	offset(cursor_foreground), XtRPixel, (caddr_t)&def_bp},
X    {XtNcursorBackground, XtCCursorBackground, XtRPixel, sizeof(Pixel),
X	offset(cursor_background), XtRPixel, (caddr_t)&def_wp},
X/* Shadow */
X    {XtNshadow, XtCShadow, XtRBoolean, sizeof(Boolean),
X	offset(shadow), XtRBoolean, (caddr_t)&def_false},
X    {XtNfirstExpose, XtCCallback, XtRCallback, sizeof(caddr_t), 
X	offset(firstExposeCallbacks), XtRCallback, (caddr_t)NULL},
X    {XtNresize, XtCCallback, XtRCallback, sizeof(caddr_t), 
X	offset(resizeCallbacks), XtRCallback, (caddr_t)NULL}
X

END_OF_FILE
echo shar: NEWLINE appended to \"'src/CuSimpleR.h'\"
if test 1590 -ne `wc -c <'src/CuSimpleR.h'`; then
    echo shar: \"'src/CuSimpleR.h'\" unpacked with wrong size!
fi
# end of 'src/CuSimpleR.h'
fi
if test -f 'src/disclaimer.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/disclaimer.h'\"
else
echo shar: Extracting \"'src/disclaimer.h'\" \(1589 characters\)
sed "s/^X//" >'src/disclaimer.h' <<'END_OF_FILE'
X/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
X
XThis code was derived from a file that contained the following
Xnotice.  Insofar as my modifications are concerned, I grant the
Xsame permissions and make the same disclaimers.
X
XGene W. Dykes, Program of Computer Graphics, Cornell University
X
X* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
X
X/***********************************************************
X
XCopyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
Xand the Massachusetts Institute of Technology, Cambridge, Massachusetts.
X
X                        All Rights Reserved
X
XPermission to use, copy, modify, and distribute this software and its 
Xdocumentation for any purpose and without fee is hereby granted, 
Xprovided that the above copyright notice appear in all copies and that
Xboth that copyright notice and this permission notice appear in 
Xsupporting documentation, and that the names of Digital or MIT not be
Xused in advertising or publicity pertaining to distribution of the
Xsoftware without specific, written prior permission.  
X
XDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
XALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
XDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
XANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
XWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
XARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
XSOFTWARE.
X
X***********************************************************/
X

END_OF_FILE
echo shar: NEWLINE appended to \"'src/disclaimer.h'\"
if test 1590 -ne `wc -c <'src/disclaimer.h'`; then
    echo shar: \"'src/disclaimer.h'\" unpacked with wrong size!
fi
# end of 'src/disclaimer.h'
fi
if test -f 'wlmCompiler/CuStack.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'wlmCompiler/CuStack.c'\"
else
echo shar: Extracting \"'wlmCompiler/CuStack.c'\" \(1308 characters\)
sed "s/^X//" >'wlmCompiler/CuStack.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include "CuStack.h"
X
Xvoid
XCu_stack_create (name, stack, chunk_size)
X    char *name ;
X    Stack **stack ;
X    int chunk_size ;
X{
X(*stack) = (Stack *) malloc (sizeof (Stack)) ;
X(*stack)->n = 0 ;
X(*stack)->name = (char *) malloc (strlen(name)+1) ;
Xstrcpy ((*stack)->name, name) ;
XCu_grow_create (&(*stack)->grow, chunk_size) ;
Xreturn ;
X}
X
Xvoid
XCu_stack_push (stack, value)
X    Stack *stack ;
X    int value ;
X{
XCu_grow_check (stack->grow, stack->n) ;
Xstack->grow->s[stack->n++] = value ;
Xreturn ;
X}
X
Xint 
XCu_stack_pull (stack)
X    Stack *stack ;
X{
Xint i, bottom ;
X
Xbottom = stack->grow->s[0] ;
X--stack->n ;
Xfor (i=0;  i < stack->n;  i++)
X	stack->grow->s[i] = stack->grow->s[i+1] ;
Xreturn bottom ;
X}
X
Xint
XCu_stack_pop (stack)
X    Stack *stack ;
X{
Xint ret_value ;
Xret_value = stack->grow->s[--stack->n] ;
Xreturn ret_value ;
X}
X
X
Xint 
XCu_stack_peek (stack, index)
X    Stack *stack ;
X    int index ;
X{
Xint ret_value ;
Xif (index == STACK_NEXT_POP)
X    index = stack->n - 1 ;
Xelse
Xif (index == STACK_NEXT_PULL)
X    index = 0 ;
X
Xif (stack->n)
X	ret_value = stack->grow->s[index] ;
Xelse
X	ret_value = NULL ;
Xreturn ret_value ;
X}
X
Xvoid
XCu_stack_kill (stack, number)
X    Stack *stack ;
X    int number ;
X{
Xstack->n -= number ;
Xreturn ;
X}
X
Xint
XCu_stack_size (stack)
X    Stack *stack ;
X{
Xreturn stack->n ;
X}

END_OF_FILE
echo shar: NEWLINE appended to \"'wlmCompiler/CuStack.c'\"
if test 1309 -ne `wc -c <'wlmCompiler/CuStack.c'`; then
    echo shar: \"'wlmCompiler/CuStack.c'\" unpacked with wrong size!
fi
# end of 'wlmCompiler/CuStack.c'
fi
if test -f 'wlmCompiler/wlc.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'wlmCompiler/wlc.h'\"
else
echo shar: Extracting \"'wlmCompiler/wlc.h'\" \(2139 characters\)
sed "s/^X//" >'wlmCompiler/wlc.h' <<'END_OF_FILE'
X/* Wlm widget private definitions */
X
X#ifndef _WlmCompiler_h
X#define _WlmCompiler_h
X
X/*
X * Prelude
X */
X
Xtypedef enum {
X	     WlmLocalContext, WlmGlobalContext
X	     } WlmContext ;
X
Xtypedef struct WlmManageItem
X    {
X    String widget ;
X    String type ;
X    String value ;
X    struct WlmManageItem *next ;
X    } WlmManageItem ;
X
X#define MAX_DIRECTIVE_ARGUMENTS 10
X#define MAX_DIRECTIVE_CALLDATA_ITEMS 10
X#define MAX_DIRECTIVE_CALLDATA_INDICES 2
X
Xtypedef enum
X    {
X     WlmDirectiveEquivalence
X    ,WlmDirectiveNonEquivalence
X    ,WlmDirectiveGreaterThan
X    ,WlmDirectiveLessThan
X    ,WlmDirectiveGreaterThanOrEqualTo
X    ,WlmDirectiveLessThanOrEqualTo
X    } WlmDirectiveOperator ;
X
Xtypedef struct Resource
X    {
X    String name ;
X    String class ;
X    String value ;
X    WlmContext context ;
X    struct Resource *next ;
X    } Resource ;
X
Xtypedef struct Directive
X    {
X    String callback_name ;
X    String call_data_converter[MAX_DIRECTIVE_CALLDATA_ITEMS] ;
X    String call_data[MAX_DIRECTIVE_CALLDATA_ITEMS] ;
X    WlmDirectiveOperator call_data_operator[MAX_DIRECTIVE_CALLDATA_ITEMS] ;
X    int call_data_index[MAX_DIRECTIVE_CALLDATA_ITEMS]
X			[MAX_DIRECTIVE_CALLDATA_INDICES] ;
X    int      n_call_comparisons ;
X    Cardinal n_call_indices[MAX_DIRECTIVE_CALLDATA_ITEMS] ;
X    String target_class ;
X    String target_name ;
X    Resource resource ;
X    String procedure ;
X    Cardinal n_arguments ;
X    String argument_converters[MAX_DIRECTIVE_ARGUMENTS] ;
X    String argument_strings[MAX_DIRECTIVE_ARGUMENTS] ;
X    long client_data[3] ;
X    struct Directive *next ;
X    } Directive ;
X
Xtypedef struct Fetus
X    {
X    String class_name ;
X    Cardinal n_resources ;
X    Resource *resource ;
X    Cardinal n_directives ;
X    Directive *directives ;
X    Cardinal n_children ;
X    struct Fetus **children ;
X    Cardinal n_manage_list ;
X    WlmManageItem *manage_list ;
X    Widget id ;
X    } Fetus ;
X
Xtypedef struct
X    {
X    String layout_file ;
X    String compiled_file ;
X    String class_file ;
X    String wldl_file ;
X    Cardinal cur_depth ;
X    Cardinal max_depth ;
X    Stack *child_stack ;
X    } WlmCompilerPart ;
X
X#endif _WlmCompiler_h

END_OF_FILE
echo shar: NEWLINE appended to \"'wlmCompiler/wlc.h'\"
if test 2140 -ne `wc -c <'wlmCompiler/wlc.h'`; then
    echo shar: \"'wlmCompiler/wlc.h'\" unpacked with wrong size!
fi
# end of 'wlmCompiler/wlc.h'
fi
echo shar: End of archive 11 \(of 12\).
cp /dev/null ark11isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 12 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