[comp.sources.x] v03i028: Ardent Window Manager, Patchlevel 9, Part12/12

mikew@wyse.wyse.com (Mike Wexler) (02/22/89)

Submitted-by: kmw@ardent (Ken Wallich)
Posting-number: Volume 3, Issue 28
Archive-name: awm2/part12

#! /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 12 (of 12)."
# Contents:  AUTHOR Grab.c MENUS VERSION bitmaps/README
#   bitmaps/blank.bm bitmaps/destroy.bm bitmaps/die.bm bitmaps/foc.bm
#   bitmaps/ic.bm bitmaps/mac_close.bm bitmaps/raise.bm bitmaps/res.bm
#   bitmaps/resize.bm def.awmrc menus/Makefile menus/README
#   menus/eventstack.h menus/gray1.h menus/rtlmnu.opt.h neaten.def.h
#   neaten.ext.h patchlevel.h support.h
# Wrapped by mikew@wyse on Fri Feb 17 10:50:37 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'AUTHOR' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'AUTHOR'\"
else
echo shar: Extracting \"'AUTHOR'\" \(521 characters\)
sed "s/^X//" >'AUTHOR' <<'END_OF_FILE'
X(Message inbox:899)
XReturn-Path: mips!ardent!kmw
XReceived:  by wyse.wyse.com (5.58/Wyse master/5-13-88)
X	id AA02751; Thu, 16 Feb 89 18:02:22 PST
XReceived: by mips.com id AA18851(1.0); Thu, 16 Feb 89 17:31:35 PST
XReceived: by ardent.com; from sim; id AA01770; Thu, 16 Feb 89 16:35:50 PST
XReceived: by sim.ardent.com (1.1/SMI-3.0DEV3)
X	id AA06620; Thu, 16 Feb 89 16:36:19 PST
XDate: Thu, 16 Feb 89 16:36:19 PST
XFrom: mips!ardent.com!kmw (Ken Wallich)
XMessage-Id: <8902170036.AA06620@sim.ardent.com>
XTo: mips!wyse.com!mikew
X
END_OF_FILE
if test 521 -ne `wc -c <'AUTHOR'`; then
    echo shar: \"'AUTHOR'\" unpacked with wrong size!
fi
# end of 'AUTHOR'
fi
if test -f 'Grab.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Grab.c'\"
else
echo shar: Extracting \"'Grab.c'\" \(1476 characters\)
sed "s/^X//" >'Grab.c' <<'END_OF_FILE'
X
X
X
X#ifndef lint
Xstatic char *rcsid_Grab_c = "$Header: /usr/graph2/X11.3/contrib/windowmgrs/awm/RCS/Grab.c,v 1.2 89/02/07 20:05:05 jkh Exp $";
X#endif  lint
X
X#include "X11/copyright.h"
X/*
X *
X * Copyright 1987, 1988 by Ardent Computer Corporation, Sunnyvale, Ca.
X *
X * Copyright 1987 by Jordan Hubbard.
X *
X *
X *                         All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Ardent Computer
X * Corporation or Jordan Hubbard not be used in advertising or publicity
X * pertaining to distribution of the software without specific, written
X * prior permission.
X *
X */
X
X/*
X * MODIFICATION HISTORY
X *
X * 002 -- Jordan Hubbard, Ardent Computer
X *   Modifications for addition contexts.
X */
X
X#include "X11/Xlib.h"
X#include "awm.h"
X
Xvoid grab_pointer()
X{
X     Entry("grab_pointer")
X
X     if (XGrabPointer( dpy, RootWindow(dpy, scr),
X		      TRUE, (unsigned int) EVENTMASK, GrabModeAsync,
X		      GrabModeAsync, None,
X		      ArrowCrossCursor, CurrentTime )
X	 != GrabSuccess )
X	  fprintf(stderr, "awm (grab_pointer): Can't grab the mouse.");
X      Leave_void
X}
X
Xvoid ungrab_pointer()
X{
X     Entry("ungrab_pointer")
X
X     XUngrabPointer(dpy, CurrentTime);
X     Leave_void
X}
END_OF_FILE
if test 1476 -ne `wc -c <'Grab.c'`; then
    echo shar: \"'Grab.c'\" unpacked with wrong size!
fi
# end of 'Grab.c'
fi
if test -f 'MENUS' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MENUS'\"
else
echo shar: Extracting \"'MENUS'\" \(2087 characters\)
sed "s/^X//" >'MENUS' <<'END_OF_FILE'
XThe menu package you'll find in this release is derived from the RTL
Xmenu package, version 2.0. RTL is currently at revision level 3, which
Xno doubt fixes many of the bugs in version 2, but I cannot easily update 
Xto it. Here's why:
X
XThe RTL menus, as they come "out of the box" give you the ability
Xto create hierarchical walking menus. Each pane is in a fixed font
Xand can have, in addition to text, a check mark (denoting some boolean
Xcondition), an arrow (denoting an adjacent pull-right menu) or grey-stippled
Xtext (denoting a disabled item). This was almost ideal for my purposes
Xsince I needed checkmarks for boolean variables and arrows for pull-right
Xmenus (not to mention the pull-right menus themselves). However, since
Xawm tries hard to present a pictoral interface (with gadget boxes and
Xthe like), it was necessary to make modifications to the menu package
Xto support:
X
Xo Arbitrary pixmaps in menus panes, rather than just text.
X
Xo A "bold" font for panes that is used for menu titles (which users
X  of uwm, awm's predecessor, had come to expect).
X
Xo The removal of the "all menu panes must be the same height" restriction
X  to accomodate the two features mentioned above.
X
X
XThere were also a number of internel changes, such as the removal of
Xthe AssocTable code that forced a dependence on the X10 compatability
Xlibrary. The positioning of the pointer within windows and the positioning
Xof the pull-right menus themselves was also changed somewhat, since
Xusing the menu package from a window manager required that the menu
Xpackage be a little less exacting about things and give the user more
Xroom for error.
X
XFinally, there were a few changes made for the window manager itself,
Xsuch as support for the "AutoSelect" mode people had come to know
Xand love(?) from uwm.
X
X
XIf anyone feels ambitious enough to reverse-engineer these changes into
XRTL's version 3 package, or to author a totally new menu package with
Xthe features I need, I'll be more than happy to adopt it. In the mean
Xtime, I have other issues which are, unfortunately, more pressing.
X
X
X					Jordan Hubbard
END_OF_FILE
if test 2087 -ne `wc -c <'MENUS'`; then
    echo shar: \"'MENUS'\" unpacked with wrong size!
fi
# end of 'MENUS'
fi
if test -f 'VERSION' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'VERSION'\"
else
echo shar: Extracting \"'VERSION'\" \(272 characters\)
sed "s/^X//" >'VERSION' <<'END_OF_FILE'
XRev	Files					Reason
X1.1	First release
X1.2	FocusChng.c, awm.c, exp_path.c		vax compatability
X1.2	Gadget.c				incorrect gadget calcs.
X1.2	Icons.c					correct clip GC, hPad, vPad
X1.2	gram.y					cast, gadgets
X1.2 	awm.man					title.push, hPad, vPad
X1.2	awm.c					hPad, vPad.
END_OF_FILE
if test 272 -ne `wc -c <'VERSION'`; then
    echo shar: \"'VERSION'\" unpacked with wrong size!
fi
# end of 'VERSION'
fi
if test -f 'bitmaps/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/README'\"
else
echo shar: Extracting \"'bitmaps/README'\" \(545 characters\)
sed "s/^X//" >'bitmaps/README' <<'END_OF_FILE'
XHere are a few contributed bitmaps (as well as some of my own) that
Xmight be useful to people designing interfaces with awm. As noted
Xin the man page, care should be taken when constructing menu panes
Xwith these as they are not all the same size. Your contributions
Xto this collections are welcomed.
X
XIt should be noted that hackers don't usually make very good artists.
XIf someone more artistically inclined (and willing to work within the
Xlimits of a 16x16 or 32x32 frame) is interested in adding to this
Xcollection, please do!
X
X					- Jordan
END_OF_FILE
if test 545 -ne `wc -c <'bitmaps/README'`; then
    echo shar: \"'bitmaps/README'\" unpacked with wrong size!
fi
# end of 'bitmaps/README'
fi
if test -f 'bitmaps/blank.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/blank.bm'\"
else
echo shar: Extracting \"'bitmaps/blank.bm'\" \(278 characters\)
sed "s/^X//" >'bitmaps/blank.bm' <<'END_OF_FILE'
X#define blank_width 16
X#define blank_height 16
Xstatic char blank_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
END_OF_FILE
if test 278 -ne `wc -c <'bitmaps/blank.bm'`; then
    echo shar: \"'bitmaps/blank.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/blank.bm'
fi
if test -f 'bitmaps/destroy.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/destroy.bm'\"
else
echo shar: Extracting \"'bitmaps/destroy.bm'\" \(284 characters\)
sed "s/^X//" >'bitmaps/destroy.bm' <<'END_OF_FILE'
X#define destroy_width 16
X#define destroy_height 16
Xstatic char destroy_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xe0, 0x7f,
X   0x20, 0x02, 0xf0, 0x01, 0x78, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x1c, 0x00,
X   0x1c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00};
END_OF_FILE
if test 284 -ne `wc -c <'bitmaps/destroy.bm'`; then
    echo shar: \"'bitmaps/destroy.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/destroy.bm'
fi
if test -f 'bitmaps/die.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/die.bm'\"
else
echo shar: Extracting \"'bitmaps/die.bm'\" \(260 characters\)
sed "s/^X//" >'bitmaps/die.bm' <<'END_OF_FILE'
X#define die_width 15
X#define die_height 15
Xstatic char die_bits[] = {
X   0x00, 0x00, 0x2e, 0x3d, 0x22, 0x15, 0xc2, 0x14, 0xc6, 0x14, 0x22, 0x15,
X   0x22, 0x15, 0x2e, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0c, 0xfe, 0x3f,
X   0xfe, 0x3f, 0x00, 0x0c, 0x00, 0x02};
END_OF_FILE
if test 260 -ne `wc -c <'bitmaps/die.bm'`; then
    echo shar: \"'bitmaps/die.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/die.bm'
fi
if test -f 'bitmaps/foc.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/foc.bm'\"
else
echo shar: Extracting \"'bitmaps/foc.bm'\" \(260 characters\)
sed "s/^X//" >'bitmaps/foc.bm' <<'END_OF_FILE'
X#define foc_width 15
X#define foc_height 15
Xstatic char foc_bits[] = {
X   0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0xfc, 0x9f, 0x54, 0x95,
X   0xfc, 0x9f, 0x54, 0x95, 0xfc, 0x9f, 0x04, 0x90, 0xfc, 0x9f, 0x00, 0x80,
X   0x00, 0x80, 0x00, 0x80, 0x00, 0x80};
END_OF_FILE
if test 260 -ne `wc -c <'bitmaps/foc.bm'`; then
    echo shar: \"'bitmaps/foc.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/foc.bm'
fi
if test -f 'bitmaps/ic.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/ic.bm'\"
else
echo shar: Extracting \"'bitmaps/ic.bm'\" \(257 characters\)
sed "s/^X//" >'bitmaps/ic.bm' <<'END_OF_FILE'
X#define ic_width 15
X#define ic_height 15
Xstatic char ic_bits[] = {
X   0x00, 0x80, 0x00, 0x80, 0x7c, 0x9f, 0x7c, 0x9f, 0x7c, 0x9f, 0x7c, 0x9f,
X   0x7c, 0x9f, 0x00, 0x80, 0x7c, 0x9f, 0x7c, 0x9f, 0x7c, 0x9f, 0x7c, 0x9f,
X   0x7c, 0x9f, 0x00, 0x80, 0x00, 0x80};
END_OF_FILE
if test 257 -ne `wc -c <'bitmaps/ic.bm'`; then
    echo shar: \"'bitmaps/ic.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/ic.bm'
fi
if test -f 'bitmaps/mac_close.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/mac_close.bm'\"
else
echo shar: Extracting \"'bitmaps/mac_close.bm'\" \(215 characters\)
sed "s/^X//" >'bitmaps/mac_close.bm' <<'END_OF_FILE'
X#define mac_close_width 10
X#define mac_close_height 10
Xstatic char mac_close_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
END_OF_FILE
if test 215 -ne `wc -c <'bitmaps/mac_close.bm'`; then
    echo shar: \"'bitmaps/mac_close.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/mac_close.bm'
fi
if test -f 'bitmaps/raise.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/raise.bm'\"
else
echo shar: Extracting \"'bitmaps/raise.bm'\" \(269 characters\)
sed "s/^X//" >'bitmaps/raise.bm' <<'END_OF_FILE'
X#define g1_width 16
X#define g1_height 16
Xstatic char g1_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0x80, 0x00,
X   0x80, 0x00, 0x9e, 0x3c, 0x9e, 0x3c, 0x80, 0x00, 0x80, 0x00, 0xe0, 0x03,
X   0xc0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00};
END_OF_FILE
if test 269 -ne `wc -c <'bitmaps/raise.bm'`; then
    echo shar: \"'bitmaps/raise.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/raise.bm'
fi
if test -f 'bitmaps/res.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/res.bm'\"
else
echo shar: Extracting \"'bitmaps/res.bm'\" \(260 characters\)
sed "s/^X//" >'bitmaps/res.bm' <<'END_OF_FILE'
X#define res_width 15
X#define res_height 15
Xstatic char res_bits[] = {
X   0x00, 0x80, 0xfe, 0xbf, 0x00, 0xa0, 0x00, 0xa0, 0xaa, 0xa6, 0x00, 0xa4,
X   0x00, 0xa0, 0x00, 0xa4, 0x7e, 0xa0, 0x40, 0xa4, 0x40, 0xa0, 0x40, 0xa4,
X   0x40, 0xa0, 0x40, 0xa4, 0x00, 0x80};
END_OF_FILE
if test 260 -ne `wc -c <'bitmaps/res.bm'`; then
    echo shar: \"'bitmaps/res.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/res.bm'
fi
if test -f 'bitmaps/resize.bm' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bitmaps/resize.bm'\"
else
echo shar: Extracting \"'bitmaps/resize.bm'\" \(281 characters\)
sed "s/^X//" >'bitmaps/resize.bm' <<'END_OF_FILE'
X#define resize_width 16
X#define resize_height 16
Xstatic char resize_bits[] = {
X   0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, 0x00, 0x38, 0x00, 0x24,
X   0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x12, 0x00,
X   0x0e, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x00, 0x00};
END_OF_FILE
if test 281 -ne `wc -c <'bitmaps/resize.bm'`; then
    echo shar: \"'bitmaps/resize.bm'\" unpacked with wrong size!
fi
# end of 'bitmaps/resize.bm'
fi
if test -f 'def.awmrc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'def.awmrc'\"
else
echo shar: Extracting \"'def.awmrc'\" \(1960 characters\)
sed "s/^X//" >'def.awmrc' <<'END_OF_FILE'
X# $Source $
X# $Author $
X# $Header $
X# Copyright (c) 1987 by the Massachusetts Institute of Technology.
X#
X# This is a startup file for uwm that produces an xwm lookalike,
X# but adds two useful menus.  It is patterned on the public
X# distribution ../lib/X/uwm/jg.uwmrc file by Jim Gettys.
X#
Xresetbindings
Xresetmenus
Xresetgadgets
X
X# FUNCTION	KEYS	CONTEXT		MOUSE BUTTON ACTIONS
Xf.newiconify=	meta	:window|icon:	delta left
Xf.raise=	meta	:window|icon:	delta left
Xf.lower=	meta	:window|icon:	left up
Xf.raise=	meta	:window:	middle down
Xf.resize=	meta	:window:	delta middle
Xf.iconify=	meta	:icon:		middle up
Xf.raise=	meta	:window|icon:	right down
Xf.move=		meta	:window|icon:	delta right
Xf.circledown=	meta	:root:		left down
Xf.circleup=	meta	:root:		right down
Xf.circledown=	m|s	::		left down
Xf.menu=			:root:		middle down	: "WindowOps"
Xf.menu=		m|s	::		middle down	: "WindowOps"
Xf.menu=		m|s	:root:		left down	: "Preferences"
Xf.menu=		m|s	::		left down	: "Preferences"
Xf.circleup=	m|s	::		right down
Xf.iconify=	m|c	:window|icon:	left down
Xf.newiconify=	m|l	:window|icon:	left down
Xf.raise=	m|l	:window|icon:	left up
Xf.pushright=	m|l	:window|icon:	right down
Xf.pushleft=	m|c	:window|icon:	right down
Xf.pushup=	m|l	:window|icon:	middle down
Xf.pushdown=	m|c	:window|icon:	middle down
X
Xmenu = "Preferences" {
XBell Loud:	!"xset b 7&"
XBell Normal:	!"xset b 3&"
XBell Off:	!"xset b off&"
XClick Loud:	!"xset c 8&"
XClick Soft:	!"xset c on&"
XClick Off:	!"xset c off&"
XLock On:	!"xset l on&"
XLock Off:	!"xset l off&"
XMouse Fast:	!"xset m 4 2&"
XMouse Normal:	!"xset m 2 5&"
XMouse Slow:	!"xset m 1 1&"
X}
X
Xmenu = "WindowOps" {
XPreferences:	f.menu:	"Preferences"
XNew Window:	!"xterm&"
XRefreshScreen:	f.refresh
XRedraw:		f.redraw
XMove:		f.move
XResize:		f.resize
XLower:		f.lower
XRaise:		f.raise
XCircUp:		f.circleup
XCircDown:	f.circledown
XAutoIconify:	f.iconify
XLowerIconify:	f.newiconify
XNewIconify:	f.newiconify
XFocus:		f.focus
XFreeze:		f.pause
XUnFreeze:	f.continue
XRestart:	f.restart
X}
END_OF_FILE
if test 1960 -ne `wc -c <'def.awmrc'`; then
    echo shar: \"'def.awmrc'\" unpacked with wrong size!
fi
# end of 'def.awmrc'
fi
if test -f 'menus/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'menus/Makefile'\"
else
echo shar: Extracting \"'menus/Makefile'\" \(1555 characters\)
sed "s/^X//" >'menus/Makefile' <<'END_OF_FILE'
X# makefile for example menu program
X# This should be generated by imake, but it's not.
X# sometime "soon". In the meantime, change the directories
X# to suite your system.
X
X# if using DBUG package, point this to the object files
X# DBUGDIR = 
X
XOBJS =	rtlmenu.o track_menu.o eventsave.o eventstack.o menu.o
XSRCS =	rtlmenu.c track_menu.c eventsave.c eventstack.c menu.c
XINCS =	menu.h menu.def.h menu.ext.h rtlmenu.h std_defs.h eventstack.h \
X	arrow_icon.h dbug.h gray1.h null_icon.h dbug.h rtlmnu.ext.h \
X	rtlmnu.opt.h
X
X# compiler flags 
XFLAGS = $(CFLAGS)
X
X# if you want to use the DBUG package (and you have it around), define
X# DBUGFLAG to be empty
XDBUGFLAG = DBUG_OFF
X
Xrtlmenu.a : $(OBJS)
X	rm -f rtlmenu.a
X	ar clq rtlmenu.a $(OBJS)
X	ranlib rtlmenu.a
X
Xrtlmenu.o : rtlmenu.c menu.h menu.def.h menu.ext.h rtlmenu.h std_defs.h
X	 $(CC) $(FLAGS) -D$(DBUGFLAG) -c rtlmenu.c
X
Xtrack_menu.o : track_menu.c eventstack.h dbug.h \
X		menu.def.h menu.h menu.ext.h null_icon.h \
X		arrow_icon.h std_defs.h
X	 $(CC) $(FLAGS) -D$(DBUGFLAG) -c track_menu.c
X
Xeventsave.o : eventsave.c eventstack.h dbug.h std_defs.h
X	 $(CC) $(FLAGS) -D$(DBUGFLAG) -c eventsave.c
X
Xeventstack.o : eventstack.c eventstack.h dbug.h std_defs.h
X	 $(CC) $(FLAGS) -D$(DBUGFLAG) -c eventstack.c
X
Xmenu.o : menu.c arrow_icon.h gray1.h menu.def.h menu.h std_defs.h dbug.h
X	 $(CC) $(FLAGS)   -D$(DBUGFLAG) -c menu.c
X
Xclean:
X	rm -f *.o *.a core *~ #* 
X
Xnoident:
X	@echo Removing ident lines from menus...
X	@for i in $(SRCS) $(INCS); do \
X	sed -e '/#ident/D' < $$i > /tmp/x.$$i && \
X	mv /tmp/x.$$i $$i ; \
X	done
END_OF_FILE
if test 1555 -ne `wc -c <'menus/Makefile'`; then
    echo shar: \"'menus/Makefile'\" unpacked with wrong size!
fi
# end of 'menus/Makefile'
fi
if test -f 'menus/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'menus/README'\"
else
echo shar: Extracting \"'menus/README'\" \(1892 characters\)
sed "s/^X//" >'menus/README' <<'END_OF_FILE'
XLast changed February 8th, 1989
X
XMenus panes are now redrawn differently. Rather than waiting for
Xa "side-effect" expose from a copy area, trackmenu() just draws them
Xitself. This should result in substantially better behaviour on colour
Xsystems. A number of nits have been cleaned up as well.
X
X				Jordan Hubbard
X
X-----
X
XRTLMenus Version 1.0 Release 2.1
X
XThis menu package was written at Siemens Research and
XTechnologies Laboratory, Princeton, NJ, in the second half 
Xkof 1987.
X
XThe original basis for the source file menu.c was the menu
Xpackage for version X10/6.6 of xterm (misc.c).  We thank the
Xprogrammers who gave us this basis from which to expand.
X
XWe wrote this package to meet the needs of the RTL Tiled
XWindows window manager which is under development here.
XWe have simulated much of the functionality of the SunWindows
XToolkit menus.  The package has been tested only on Suns.
XWe welcome enhancements and changes, and we would appreciate
Xhearing about them.  We'll be glad to accept bug reports, but
Xwe can't support this package beyond our own needs.  We are
Xmaking it available because you 1) may be able to use it,
Xand 2) may learn some tricks from it.
X
XWe found the DBUG C Program Debugging Package by Fred Fish to
Xbe useful in debugging track_menu.c.  The DBUG macros remain,
Xso you can use them to trace the code if you have DBUG
Xavailable.  The Makefile assumes you do NOT have DBUG, and
Xturns it off. 
X
XAdam J. Richter of UC Berkeley wrote an initial version of the
Xmenus while he was here last summer.  Joe Camaratta and Mike
XBerman designed and built the present version.  This work was
Xperformed with the guidance of Ellis Cohen and the assistance
Xof Mark Biggers.
X
XWe thank those who beta-tested the menus; in particular,
Xthanks to George Sherouse and Mark Baushke for their useful
Xsuggestions. 
X
X--Mike Berman
X  berman%siemens@princeton.edu
X  (609)734-6500 x2293
X
END_OF_FILE
if test 1892 -ne `wc -c <'menus/README'`; then
    echo shar: \"'menus/README'\" unpacked with wrong size!
fi
# end of 'menus/README'
fi
if test -f 'menus/eventstack.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'menus/eventstack.h'\"
else
echo shar: Extracting \"'menus/eventstack.h'\" \(1576 characters\)
sed "s/^X//" >'menus/eventstack.h' <<'END_OF_FILE'
X
X/*
X#ifndef lint
Xstatic char sccs_id[] = "@(#)eventstack.h	2.1 12/16/87  Siemens Corporate Research and Support, Inc.";
X#endif
X*/
X
X
X/* 
X *  RTL Menu Package Version 1.0
X * by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987
X *
X * eventstack.h: data structure definitions for eventstack package.
X * rewritten almost entirely by Jordan Hubbard, Ardent Computer corp.
X * Previous version did not agree with many compilers.
X *
X */
X
X#include "X11/copyright.h"
X/*
X *
X * Copyright 1987, 1988 by Ardent Computer Corporation, Sunnyvale, Ca.
X *
X * Copyright 1987 by Jordan Hubbard.
X *
X *
X *                         All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Ardent Computer
X * Corporation or Jordan Hubbard not be used in advertising or publicity
X * pertaining to distribution of the software without specific, written
X * prior permission.
X *
X */
X
X#ifndef _XLIB_H_
X#include "X11/Xlib.h"
X#endif
X
X#include "std_defs.h"
X
X#define EventStackIsEmpty(stk) (*stk == (struct Ev_q *)0)
X
Xstruct Ev_q {
X     struct Ev_q *prev;
X     XEvent *event;
X};
X
X
Xextern void SaveEvents(), RestoreEvents(), DisposeEvents(),
X    DiscardEventStore(), AddEventToStore(), RemoveEventFromStore();
X
Xextern Boolean EventStoreIsEmpty();
Xextern void PushEvent();
Xextern XEvent *PopEvent();
X
X
X
END_OF_FILE
if test 1576 -ne `wc -c <'menus/eventstack.h'`; then
    echo shar: \"'menus/eventstack.h'\" unpacked with wrong size!
fi
# end of 'menus/eventstack.h'
fi
if test -f 'menus/gray1.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'menus/gray1.h'\"
else
echo shar: Extracting \"'menus/gray1.h'\" \(279 characters\)
sed "s/^X//" >'menus/gray1.h' <<'END_OF_FILE'
X
X#define gray1_width 16
X#define gray1_height 16
Xstatic char gray1_bits[] = {
X   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
X   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
X   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa};
END_OF_FILE
if test 279 -ne `wc -c <'menus/gray1.h'`; then
    echo shar: \"'menus/gray1.h'\" unpacked with wrong size!
fi
# end of 'menus/gray1.h'
fi
if test -f 'menus/rtlmnu.opt.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'menus/rtlmnu.opt.h'\"
else
echo shar: Extracting \"'menus/rtlmnu.opt.h'\" \(1856 characters\)
sed "s/^X//" >'menus/rtlmnu.opt.h' <<'END_OF_FILE'
X
X/*
X#ifndef lint
Xstatic char sccs_id[] = "@(#)rtlmenu.options.h	2.1 12/16/87  Siemens Corporate Research and Support, Inc.";
X#endif
X*/
X
X
X/* 
X  RTL Menu Package Version 1.0
X  by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987
X
X  rtlmenu.options.h: option flags for rtlmenu user
X*/
X
X/*
X
XCopyright 1987 by
X	Siemens Corporate Research and Support, Inc., Princeton, New Jersey
X
XPermission to use, copy, modify, and distribute this software
Xand its documentation for any purpose and without fee is
Xhereby granted, provided that the above copyright notice
Xappear in all copies and that both that copyright notice and
Xthis permission notice appear in supporting documentation, and
Xthat the name of Siemens not be used in advertising or
Xpublicity pertaining to distribution of the software without
Xspecific, written prior permission.  Siemens makes no
Xrepresentations about the suitability of this software for any
Xpurpose.  It is provided "as is" without express or implied
Xwarranty.
X
X*/
X
X#ifndef OPTION_FLAGS
X#define OPTION_FLAGS
X
X/* flags for menu operation */
X
Xtypedef unsigned int MenuOptionsMask;
X
X#define clickokay   (1L<<0) /* accept click-click as equivalent to press-release  */
X#define savebits    (1L<<1) /* attempt to save/restore area under menu            */
X#define fixedchild  (1L<<2) /* pull up child in fixed position relative to parent */
X#define rightoffset (1L<<3) /* when pulling up on right edge, should child be     */
X                            /* offset to left, allowing parent to remain visible  */
X#define bigoffset   (1L<<4) /* valid only when rightoffset=1.  if bigoffset=1,    */
X                            /* offset child far enough to see most of parent;     */
X                            /* else, just far enough to get back to parent.       */
X
X#define RTLMenu_Option_Set(mask, option) (mask |= option)
X#endif
END_OF_FILE
if test 1856 -ne `wc -c <'menus/rtlmnu.opt.h'`; then
    echo shar: \"'menus/rtlmnu.opt.h'\" unpacked with wrong size!
fi
# end of 'menus/rtlmnu.opt.h'
fi
if test -f 'neaten.def.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'neaten.def.h'\"
else
echo shar: Extracting \"'neaten.def.h'\" \(1141 characters\)
sed "s/^X//" >'neaten.def.h' <<'END_OF_FILE'
X
X
X
X#ifndef lint
Xstatic char *rcsid_neaten_def_h = "$Header: /usr/graph2/X11.3/contrib/windowmgrs/awm/RCS/neaten.def.h,v 1.2 89/02/07 21:25:30 jkh Exp $";
X#endif  lint
X
X#include "X11/copyright.h"
X/*
X *
X * Copyright 1987, 1988 by Ardent Computer Corporation, Sunnyvale, Ca.
X *
X * Copyright 1987 by Jordan Hubbard.
X *
X *
X *                         All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Ardent Computer
X * Corporation or Jordan Hubbard not be used in advertising or publicity
X * pertaining to distribution of the software without specific, written
X * prior permission.
X *
X */
X
X#define NEATEN_DEFINE
X
Xtypedef enum {
X    Place_Closest,
X    Place_Top,
X    Place_Bottom,
X    Place_Left,
X    Place_Right,
X    Place_Center
X} Placement;
X
X#define NEATEN_TRUE 1
X#define NEATEN_FALSE 0
X
X#define MAX_PRIORITY 100
X#define MIN_PRIORITY -100
END_OF_FILE
if test 1141 -ne `wc -c <'neaten.def.h'`; then
    echo shar: \"'neaten.def.h'\" unpacked with wrong size!
fi
# end of 'neaten.def.h'
fi
if test -f 'neaten.ext.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'neaten.ext.h'\"
else
echo shar: Extracting \"'neaten.ext.h'\" \(1301 characters\)
sed "s/^X//" >'neaten.ext.h' <<'END_OF_FILE'
X
X
X
X#ifndef lint
Xstatic char *rcsid_neaten_ext_h = "$Header: /usr/graph2/X11.3/contrib/windowmgrs/awm/RCS/neaten.ext.h,v 1.2 89/02/07 21:25:41 jkh Exp $";
X#endif  lint
X
X#include "X11/copyright.h"
X/*
X *
X * Copyright 1987, 1988 by Ardent Computer Corporation, Sunnyvale, Ca.
X *
X * Copyright 1987 by Jordan Hubbard.
X *
X *
X *                         All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Ardent Computer
X * Corporation or Jordan Hubbard not be used in advertising or publicity
X * pertaining to distribution of the software without specific, written
X * prior permission.
X *
X */
X
X#ifndef NEATEN_DEFINE
X#include "neaten.def.h"
X#endif
X
Xextern void Neaten_Desktop();
Xextern void Neaten_Initialize();
Xextern void Neaten_Icon_Placement();
Xextern void Neaten_Identify();
Xextern int Neaten_Set_Desired();
Xextern int Neaten_Set_Min();
Xextern int Neaten_Set_Max();
Xextern void Neaten_Prorate();
Xextern int Neaten_Get_Geometry();
Xextern void Neaten_Set_Priorities();
Xextern void Neaten_Set_Options();
END_OF_FILE
if test 1301 -ne `wc -c <'neaten.ext.h'`; then
    echo shar: \"'neaten.ext.h'\" unpacked with wrong size!
fi
# end of 'neaten.ext.h'
fi
if test -f 'patchlevel.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'patchlevel.h'\"
else
echo shar: Extracting \"'patchlevel.h'\" \(21 characters\)
sed "s/^X//" >'patchlevel.h' <<'END_OF_FILE'
X#define PATCHLEVEL 9
END_OF_FILE
if test 21 -ne `wc -c <'patchlevel.h'`; then
    echo shar: \"'patchlevel.h'\" unpacked with wrong size!
fi
# end of 'patchlevel.h'
fi
if test -f 'support.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'support.h'\"
else
echo shar: Extracting \"'support.h'\" \(1781 characters\)
sed "s/^X//" >'support.h' <<'END_OF_FILE'
X
X#ifndef lint
Xstatic char *rcsid_support_h = "$Header: /usr/graph2/X11.3/contrib/windowmgrs/awm/RCS/support.h,v 1.2 89/02/07 21:25:51 jkh Exp $";
X#endif  lint
X
X#include "X11/copyright.h"
X/*
X *
X * Copyright 1987, 1988 by Ardent Computer Corporation, Sunnyvale, Ca.
X *
X * Copyright 1987 by Jordan Hubbard.
X *
X *
X *                         All Rights Reserved
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted,
X * provided that the above copyright notice appear in all copies and that
X * both that copyright notice and this permission notice appear in
X * supporting documentation, and that the name of Ardent Computer
X * Corporation or Jordan Hubbard not be used in advertising or publicity
X * pertaining to distribution of the software without specific, written
X * prior permission.
X *
X */
X
X#undef STACK_RTNAMES
X#undef TRACE
X
X#ifdef TRACE
X#define Entry(woo) { printf("Pushing to %s\n", woo); push_rtn(woo); }
X#define Leave(woo) { printf("Pop from %s with %x\n", curr_rtn(), woo); pop_rtn(); return(woo); }
X#define Leave_void { printf("Pop from %s (void)\n", curr_rtn()); pop_rtn(); return; }
X#define Trace_on _rtn_trace = 1;
X#define Trace_off _rtn_trace = 0;
Xextern char *curr_rtn();
Xextern int _rtn_level;
Xextern int _rtn_trace;
X#else
X#ifdef SAVERTNAME
X#define Entry(woo) push_rtn(woo);
X#define Leave(woo) { pop_rtn(); return(woo); }
X#define Leave_void { pop_rtn(); return; }
X#define Trace_on _rtn_trace = 1;
X#define Trace_off _rtn_trace = 0;
Xextern char *curr_rtn();
Xextern int _rtn_level;
Xextern int _rtn_trace;
X#else
X#define Entry(s)
X#define Leave(s) return(s);
X#define Leave_void return;
X#define Trace_on
X#define Trace_off
X#define Curr_rtn()
X#endif /* SAVERTNAME */
X#endif /* TRACE */
END_OF_FILE
if test 1781 -ne `wc -c <'support.h'`; then
    echo shar: \"'support.h'\" unpacked with wrong size!
fi
# end of 'support.h'
fi
echo shar: End of archive 12 \(of 12\).
cp /dev/null ark12isdone
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
-- 
Mike Wexler(wyse!mikew)    Phone: (408)433-1000 x1330
Moderator of comp.sources.x