v09i060: xdesk - a simple desktop command manager, Part01/01
Kevin Carothers
kevin at ttidcb.tti.com
Sun Sep 30 11:38:14 AEST 1990
Submitted-by: kevin at ttidcb.tti.com (Kevin Carothers)
Posting-number: Volume 9, Issue 60
Archive-name: xdesk/part01
This is a program inspired from an example I saw in the O'Reilly
X11 Programming series, Vol. VII. It builds a scrollable XView
canvas of X11 bitmap images and lets you execute a configurable command
'attached' to that particular image, somewhat like a Macintosh desktop.
Unfortunately (at least currently), this program doesn't allow
re-arranging the bitmaps within the canvas. This whole program probably
violates most Openlook GUI guidelines, but I find it immensely useful
for executing common, but gruesomly long commands, without having a
bunch of shell script lying around.
--
Kevin Carothers {philabs,csun,psivax}!ttidca!kevin
-----------------------------------------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# Imakefile
# README
# cfg.examp.a
# cfg.examp.b
# icons (directory)
# patchlevel.h
# xdesk.1
# xdesk.c
# xdesk.h
# Makefile
# This archive created: Thu Sep 27 12:30:17 1990
export PATH; PATH=/bin:/usr/bin:$PATH
if test -f 'Imakefile'
then
echo shar: "will not over-write existing file 'Imakefile'"
else
cat << \SHAR_EOF > 'Imakefile'
DEPLIBS = $(DEPXLIB)
LOCAL_LIBRARIES = $(XLIB)
SRCS = xdesk.c
OBJS = xdesk.o
ComplexProgramTarget(xdesk)
SHAR_EOF
fi
if test -f 'README'
then
echo shar: "will not over-write existing file 'README'"
else
cat << \SHAR_EOF > 'README'
XDESK
A SIMPLE X-BITMAP DRIVEN
COMMAND EXECUTION PROGRAM WRITTEN
IN X/XVIEW
Xdesk is a program which attaches a command to a particular bitmap
file name. Although it is simple, it has many features. Namely;
* Adjustable canvas size.
* Ability to configure scrollbars
* Adjustable cell-structure size for each area which is "clicked".
* optional display of click "margins".
* Otional title (default is the executable name)
The canvas is a VERY "crude" approximation of a "desktop", but hey, it's
free!
There are many thing that can be done to enhance this program. Namely:
* Ability to move/clean up the bitmap images displayed on the
canvas.
* Better handling of command arguments.
* double, instead of single-clicking commands.
If you make any enhancements/fixes to this program, please forward e-mail
the author (that's me) at the .sig below;
--
Kevin Carothers
Citicorp/TTI
3100 Ocean Park Blvd.
Santa Monica, CA 90405 {philabs,csun,psivax}!ttidca!kevin
SHAR_EOF
fi
if test -f 'cfg.examp.a'
then
echo shar: "will not over-write existing file 'cfg.examp.a'"
else
cat << \SHAR_EOF > 'cfg.examp.a'
./icons/xgr.xbm,xsetroot -gray &
./icons/xrn.icon,xrn &
./icons/xlogo64,xterm &
SHAR_EOF
fi
if test -f 'cfg.examp.b'
then
echo shar: "will not over-write existing file 'cfg.examp.b'"
else
cat << \SHAR_EOF > 'cfg.examp.b'
./icons/plonk.xbm,xsetroot -bitmap ./icons/plonk.xbm -fg Gray &
./icons/gr.xbm,xsetroot -gray &
./icons/dither.xbm,xsetroot -bitmap ./icons/dither.xbm &
./icons/calctool.icon,calctool &
./icons/xchess.icon,xchess -c &
./icons/xrn.icon,xrn &
./icons/icon_open.h,xman &
SHAR_EOF
fi
if test ! -d 'icons'
then
mkdir 'icons'
fi
cd 'icons'
if test -f 'xgr.xbm'
then
echo shar: "will not over-write existing file 'xgr.xbm'"
else
cat << \SHAR_EOF > 'xgr.xbm'
#define x_width 32
#define x_height 32
static char x_bits[] = {
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa};
SHAR_EOF
fi
if test -f 'xrn.icon'
then
echo shar: "will not over-write existing file 'xrn.icon'"
else
cat << \SHAR_EOF > 'xrn.icon'
#define xrn_width 50
#define xrn_height 50
static char xrn_bits[] = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x40, 0xc8,
0x23, 0x04, 0x00, 0x02, 0x01, 0x80, 0x44, 0x64, 0x04, 0x00, 0x02, 0x01,
0x80, 0x44, 0x64, 0x04, 0x00, 0x02, 0x01, 0x00, 0x43, 0xa2, 0x04, 0x00,
0x02, 0x01, 0x00, 0xc3, 0x21, 0x05, 0x00, 0x02, 0x01, 0x80, 0x44, 0x23,
0x06, 0x00, 0x02, 0x01, 0x80, 0x44, 0x22, 0x06, 0x00, 0x02, 0x01, 0x40,
0x48, 0x24, 0x04, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x01, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x02, 0x81, 0x00, 0x00,
0x00, 0x00, 0x0c, 0x02, 0x41, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x02, 0xe1,
0xff, 0xff, 0xff, 0xff, 0x09, 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x09,
0x02, 0x21, 0xae, 0x66, 0xae, 0x14, 0x09, 0x02, 0x21, 0xe4, 0xa2, 0xaa,
0x08, 0x09, 0x02, 0x21, 0xa4, 0x66, 0xaa, 0x09, 0x09, 0x02, 0x21, 0x00,
0x00, 0x00, 0x00, 0x09, 0x02, 0x21, 0x40, 0x2d, 0x0d, 0x00, 0x09, 0x02,
0x21, 0xc0, 0xc5, 0x08, 0x00, 0x09, 0x02, 0x21, 0x40, 0xcd, 0x0c, 0x00,
0x09, 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x21, 0xff, 0xff,
0xff, 0x3f, 0x09, 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x21,
0x00, 0x00, 0x00, 0x00, 0x09, 0x02, 0x21, 0x28, 0xf8, 0xff, 0x2c, 0x09,
0x02, 0x21, 0xd6, 0x09, 0x80, 0x30, 0x09, 0x02, 0x21, 0x00, 0xa8, 0x80,
0x00, 0x09, 0x02, 0x21, 0x18, 0x48, 0x92, 0x3c, 0x09, 0x02, 0x21, 0xe6,
0x89, 0x80, 0x00, 0x09, 0x02, 0x21, 0x00, 0x88, 0x90, 0x3c, 0x09, 0x02,
0x21, 0xe6, 0x48, 0xaf, 0x10, 0x09, 0x02, 0x21, 0x38, 0x09, 0x80, 0x00,
0x09, 0x02, 0x21, 0x00, 0xf8, 0xff, 0x3c, 0x09, 0x02, 0x21, 0xee, 0x01,
0x00, 0x00, 0x09, 0x02, 0x21, 0x30, 0xb8, 0xf5, 0x00, 0x05, 0x02, 0x21,
0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0xe1, 0xff, 0xff, 0xff, 0xff, 0x01,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb9, 0x1a, 0x00, 0x00,
0xc0, 0x65, 0x02, 0x99, 0x0b, 0x00, 0x00, 0x40, 0x25, 0x02, 0x99, 0x12,
0x00, 0x00, 0xc0, 0x44, 0x02, 0xb9, 0x1a, 0x00, 0x00, 0x40, 0x6d, 0x02,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x03 };
SHAR_EOF
fi
if test -f 'Xdesk.icon'
then
echo shar: "will not over-write existing file 'Xdesk.icon'"
else
cat << \SHAR_EOF > 'Xdesk.icon'
/* Format_version=1, Width=64, Height=50, Depth=1, Valid_bits_per_item=16
*/
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x7fff,0xffff,0xffff,0xfffe,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x07ff,0xffff,0xf802,
0x4000,0x0e3f,0xff1f,0xf802,0x4000,0x1c7f,0xfeaf,0xf802,
0x4000,0x38ff,0xff1f,0xf002,0x4000,0x7ff8,0x021f,0xf002,
0x4000,0xfff7,0xfdff,0xf002,0x4001,0xffef,0xfbff,0xd002,
0x4003,0xffde,0x77ff,0xd002,0x4007,0xff80,0x0fff,0x9002,
0x4007,0xffff,0xffff,0x1002,0x400f,0xffff,0xffff,0x2002,
0x400f,0xffff,0xfffe,0x6002,0x4000,0x8084,0x2020,0x6002,
0x4000,0x8084,0x2020,0xa002,0x4000,0x8084,0x2021,0x0002,
0x4000,0x9c84,0x2722,0x0002,0x4000,0x808c,0x2024,0x0002,
0x4000,0x8094,0x2024,0x0002,0x4000,0x80a0,0x2028,0x0002,
0x4000,0x80c0,0x2030,0x0002,0x4000,0xff80,0x3fe0,0x0002,
0x4000,0x4100,0x1040,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4000,0x0000,0x0000,0x0002,
0x4000,0x0000,0x0000,0x0002,0x4042,0x3800,0x0000,0x0002,
0x4024,0x2400,0x0004,0x2002,0x4024,0x220f,0x0704,0x4002,
0x4018,0x2210,0x8804,0x8002,0x4018,0x2220,0x8805,0x0002,
0x7f98,0x223f,0x0e07,0x83fe,0x0018,0x2220,0x0104,0x4000,
0x0024,0x2220,0x0104,0x2000,0x0024,0x2420,0x0104,0x2000,
0x0042,0x381e,0x1e04,0x2000,0x0000,0x0000,0x0000,0x0000
SHAR_EOF
fi
if test -f 'gr.xbm'
then
echo shar: "will not over-write existing file 'gr.xbm'"
else
cat << \SHAR_EOF > 'gr.xbm'
#define x_width 32
#define x_height 32
static char x_bits[] = {
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa,
0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa};
SHAR_EOF
fi
if test -f 'xlogo64'
then
echo shar: "will not over-write existing file 'xlogo64'"
else
cat << \SHAR_EOF > 'xlogo64'
#define xlogo64_width 64
#define xlogo64_height 64
static char xlogo64_bits[] = {
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x01, 0x00,
0x00, 0x00, 0x00, 0xf8, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7c,
0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf8, 0xff, 0x07, 0x00,
0x00, 0x00, 0x00, 0x1f, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x0f,
0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xc0, 0xff, 0x3f, 0x00,
0x00, 0x00, 0xc0, 0x07, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x03,
0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xff, 0xff, 0x00,
0x00, 0x00, 0xf8, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0xf8, 0x00,
0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x00, 0xfc, 0xff, 0x03,
0x00, 0x00, 0x3e, 0x00, 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x1f, 0x00,
0x00, 0xf0, 0xff, 0x0f, 0x00, 0x80, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0x0f,
0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0xc0, 0x07, 0x00,
0x00, 0xc0, 0xff, 0x3f, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x80, 0xff, 0x7f,
0x00, 0xf0, 0x01, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0xf8, 0x00, 0x00,
0x00, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff,
0x01, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x3e, 0x00, 0x00,
0x00, 0x00, 0xfc, 0xff, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff,
0x87, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xcf, 0x07, 0x00, 0x00,
0x00, 0x00, 0xe0, 0xff, 0xcf, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff,
0xe7, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf3, 0x01, 0x00, 0x00,
0x00, 0x00, 0x80, 0xff, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7e, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e,
0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0x07, 0x00, 0x00,
0x00, 0x00, 0x80, 0xcf, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe7,
0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe7, 0xff, 0x1f, 0x00, 0x00,
0x00, 0x00, 0xe0, 0xc3, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc1,
0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x80, 0xff, 0x7f, 0x00, 0x00,
0x00, 0x00, 0x7c, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00,
0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xfe, 0xff, 0x01, 0x00,
0x00, 0x00, 0x1f, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x80, 0x0f, 0x00,
0xf8, 0xff, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xf0, 0xff, 0x0f, 0x00,
0x00, 0xe0, 0x03, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0x03, 0x00,
0xe0, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xc0, 0xff, 0x3f, 0x00,
0x00, 0xf8, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x7c, 0x00, 0x00,
0x80, 0xff, 0x7f, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
0x00, 0x3e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x1f, 0x00, 0x00,
0x00, 0xfc, 0xff, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03,
0xc0, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, 0xe0, 0x03, 0x00, 0x00,
0x00, 0xf0, 0xff, 0x0f, 0xe0, 0x03, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f,
0xf0, 0x01, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0xf8, 0x00, 0x00, 0x00,
0x00, 0xc0, 0xff, 0x3f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f,
0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff};
SHAR_EOF
fi
if test -f 'Ent.icon'
then
echo shar: "will not over-write existing file 'Ent.icon'"
else
cat << \SHAR_EOF > 'Ent.icon'
#define Enterprise_width 50
#define Enterprise_height 50
static char Enterprise_bits[] = {
0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0x7f, 0xef, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf7, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff,
0xfb, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0x7f, 0xff, 0xf7,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00,
0xfe, 0x7f, 0x00, 0xe0, 0x0f, 0x00, 0xf6, 0xfe, 0x03, 0x00, 0x00, 0xf0,
0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0xf0, 0x01, 0xff, 0xff, 0x3f, 0x00,
0x00, 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xff, 0x81, 0xff, 0xff,
0xff, 0xff, 0x01, 0xf0, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00,
0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xfb, 0x1f,
0x40, 0xe5, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbe, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xfb, 0xff,
0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff,
0x7f, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xf3, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xfb, 0xfe, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb7,
0xf3, 0xfc, 0x37, 0x9c, 0xf7, 0xff, 0xa7, 0x6d, 0xfb, 0xf3, 0x6d, 0xf3,
0xff, 0xa7, 0x7d, 0xff, 0xf7, 0x6d, 0xf7, 0xff, 0x97, 0x7d, 0x0f, 0xf7,
0x6e, 0xf7, 0xff, 0x97, 0x6d, 0xfb, 0x77, 0x6f, 0xf7, 0xff, 0xb7, 0xf3,
0xfc, 0xb7, 0x9f, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff};
SHAR_EOF
fi
if test -f 'alert_qmark32.pr'
then
echo shar: "will not over-write existing file 'alert_qmark32.pr'"
else
cat << \SHAR_EOF > 'alert_qmark32.pr'
/* Format_version=1, Width=32, Height=32, Depth=1, Valid_bits_per_item=16
*/
0xAAAA,0xAAAA,
0x5555,0x5555,
0xAAAA,0xAAAA,
0x5540,0x0555,
0xAA80,0x02AA,
0x5500,0x0155,
0xAA00,0x00AA,
0x5405,0x4055,
0xAA0A,0xA02A,
0x5405,0x5055,
0xAA0A,0xA02A,
0x5555,0x4055,
0xAAAA,0x80AA,
0x5555,0x0155,
0xAAAA,0x02AA,
0x5554,0x0555,
0xAAA8,0x0AAA,
0x5554,0x1555,
0xAAA8,0x0AAA,
0x5554,0x1555,
0xAAA8,0x0AAA,
0x5554,0x1555,
0xAAAA,0xAAAA,
0x5555,0x5555,
0xAAAA,0xAAAA,
0x5554,0x1555,
0xAAA8,0x0AAA,
0x5554,0x1555,
0xAAA8,0x0AAA,
0x5554,0x1555,
0xAAAA,0xAAAA,
0x5555,0x5555
SHAR_EOF
fi
if test -f 'calctool.icon'
then
echo shar: "will not over-write existing file 'calctool.icon'"
else
cat << \SHAR_EOF > 'calctool.icon'
#define noname_width 64
#define noname_height 64
static char noname_bits[] = {
0xa9,0xaa,0xaa,0xaa,0xaa,0x02,0x00,0x00,0x55,0x55,0x55,0x55,0x55,0x01,0x00,
0x00,0xaa,0xaa,0xaa,0xaa,0xaa,0x02,0x00,0x00,0xff,0xff,0xff,0xff,0x7f,0x01,
0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xfd,0xff,0xff,0xff,0x5f,
0x01,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,0x05,0x00,0x00,0x00,
0x50,0x01,0x00,0x00,0x05,0xc0,0x00,0x0c,0xd3,0x02,0x00,0x00,0x05,0x20,0x01,
0x92,0x54,0x01,0x00,0x00,0x05,0xa0,0x01,0x9a,0xd6,0x02,0x00,0x00,0x05,0x60,
0x01,0x96,0x55,0x01,0x00,0x00,0x05,0x20,0x21,0x92,0xd4,0x02,0x00,0x00,0x05,
0xc0,0x20,0x0c,0x53,0x01,0x00,0x00,0x05,0x00,0x00,0x00,0xd0,0x02,0x00,0x00,
0x05,0x00,0x00,0x00,0x50,0x01,0x00,0x00,0xfd,0xff,0xff,0xff,0xdf,0x02,0x00,
0x00,0x01,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x02,
0x00,0x00,0xfd,0xfb,0xf7,0xef,0x5f,0x01,0x00,0x00,0x05,0x0a,0x14,0x28,0xd0,
0x02,0x00,0x00,0xf5,0xca,0x94,0x29,0x50,0x01,0x00,0x00,0x85,0x2a,0x55,0xaa,
0xc8,0x02,0x00,0x00,0x45,0xca,0x54,0x2a,0x55,0x01,0x00,0x00,0x45,0x2a,0x95,
0x2b,0xd2,0x02,0x00,0x00,0x25,0x2a,0x15,0x2a,0x55,0x01,0x00,0x00,0x25,0xca,
0x94,0xa9,0xd8,0x02,0x00,0x00,0x05,0x0a,0x14,0x28,0x50,0x01,0x00,0x00,0xfd,
0xfb,0xf7,0xef,0xdf,0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x01,0x00,0x00,
0xfd,0xfb,0xf7,0xef,0xdf,0x02,0x00,0x00,0x05,0x0a,0x14,0x28,0x50,0x01,0x00,
0x00,0x45,0xea,0x95,0x29,0xd4,0x02,0x00,0x00,0x65,0x2a,0x54,0x28,0x52,0x01,
0x00,0x00,0x55,0xea,0xd4,0x29,0xd2,0x02,0x00,0x00,0xf5,0x0a,0x55,0x2a,0x51,
0x01,0x00,0x00,0x45,0x2a,0x55,0x2a,0xd1,0x02,0x00,0x00,0x45,0xca,0x94,0xa9,
0x50,0x01,0x00,0x00,0x05,0x0a,0x14,0x28,0xd0,0x02,0x00,0x00,0xfd,0xfb,0xf7,
0xef,0x5f,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x02,0x00,0x00,0xfd,0xfb,
0xf7,0xef,0x5f,0x01,0x00,0x00,0x05,0x0a,0x14,0x28,0xd0,0x02,0x00,0x00,0x45,
0xca,0x94,0x29,0x50,0x01,0x00,0x00,0x65,0x2a,0x55,0x2a,0xd0,0x02,0x00,0x00,
0x45,0x0a,0x15,0xa9,0x57,0x01,0x00,0x00,0x45,0xca,0x14,0x2a,0xd0,0x02,0x00,
0x00,0x45,0x2a,0x54,0x2a,0x50,0x01,0x00,0x00,0xe5,0xea,0x95,0x29,0xd0,0x02,
0x00,0x00,0x05,0x0a,0x14,0x28,0x50,0x01,0x00,0x00,0xfd,0xfb,0xf7,0xef,0xdf,
0x02,0x00,0x00,0x01,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0xfd,0xfb,0xf7,0xef,
0xdf,0x02,0x00,0x00,0x05,0x0a,0x14,0x28,0x50,0x01,0x00,0x00,0x65,0x0a,0x14,
0x28,0xd0,0x02,0x00,0x00,0x95,0x0a,0x14,0x28,0x52,0x01,0x00,0x00,0xd5,0x0a,
0xd4,0x2b,0xd2,0x02,0x00,0x00,0xb5,0x0a,0x14,0xa8,0x5f,0x01,0x00,0x00,0x95,
0x8a,0xd4,0x2b,0xd2,0x02,0x00,0x00,0x65,0x8a,0x14,0x28,0x52,0x01,0x00,0x00,
0x05,0x0a,0x14,0x28,0xd0,0x02,0x00,0x00,0xfd,0xfb,0xf7,0xef,0x5f,0x01,0x00,
0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x7f,0x00,
0x00,0x00};
SHAR_EOF
fi
if test -f 'calvin.icon'
then
echo shar: "will not over-write existing file 'calvin.icon'"
else
cat << \SHAR_EOF > 'calvin.icon'
#define calvin_width 90
#define calvin_height 90
static char calvin_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x09, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x11, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x21, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x41, 0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7e, 0x00, 0x81, 0x10, 0x29, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x8c, 0x0f, 0x01, 0x09, 0x2a, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x18, 0x38, 0x01, 0x0a, 0x2a, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x60, 0x01, 0x04, 0x44, 0x81, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0xc1, 0x01, 0x0c, 0x44, 0x61, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x80, 0x1b, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0c, 0x02, 0x00, 0xe0, 0x06, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x20, 0xc0, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x10, 0x00, 0x0f, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfc, 0x87, 0x1f, 0x00, 0x10, 0x01, 0x30, 0x00, 0x00, 0x00,
0x00, 0xfe, 0x03, 0x0c, 0x00, 0x00, 0x10, 0x93, 0x20, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x13, 0x27, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x35, 0x1a, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x89, 0x2c, 0x02, 0x00, 0x00, 0x00,
0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x88, 0x20, 0x02, 0x00, 0x00, 0x00,
0x00, 0xfe, 0x02, 0x00, 0x00, 0x70, 0x84, 0xc0, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0xc0, 0xc7, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0xf8, 0x23, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x00, 0xbf, 0x23, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0xf0, 0xe7, 0xc7, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x18, 0xfc, 0x00, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x04, 0xee, 0x1f, 0x78, 0x11, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf4, 0xfe, 0x0f, 0x88, 0x9f, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x8e, 0x8f, 0x0f, 0x04, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf9, 0x8f, 0x0f, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xbf, 0x8d, 0x0f, 0x1c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x9f, 0xfd, 0x07, 0xe2, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x9f, 0xff, 0x03, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfe, 0xf1, 0x01, 0x02, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x18, 0x06, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xbc, 0x00, 0x10, 0x39, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x88, 0x00, 0x10, 0xc1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x88, 0x31, 0x10, 0x03, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x0e, 0x88, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x00, 0x84, 0x70, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0x00, 0x83, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x08, 0xf8, 0xc0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x7e, 0x08, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0xc1, 0x10, 0x00, 0x38, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x00, 0x71, 0xc0, 0x07, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x13, 0x81, 0x3f, 0x38, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe0, 0x08, 0x02, 0x07, 0xc0, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x44, 0x82, 0x38, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x44, 0x44, 0xc1, 0x03, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0x46, 0xa4, 0x00, 0x1c, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x20, 0xa6, 0xa8, 0x00, 0xe0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x99, 0xb0, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xc0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc1, 0xff, 0x03, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x51, 0x00, 0xfc, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x4a, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x24, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0xff, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x80, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x1f, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0xe0, 0x7f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x80, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0xff, 0x3f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x20, 0x00, 0xc0, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0xfc, 0x3f, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x03, 0xc0, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0xfc, 0x3f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0xff, 0xbf, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x30, 0xf8, 0x40, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xd0, 0x47, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xff, 0xff, 0x71, 0xf1, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00,
0x00, 0x80, 0xff, 0x7f, 0x1f, 0xce, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
};
SHAR_EOF
fi
if test -f 'dither'
then
echo shar: "will not over-write existing file 'dither'"
else
cat << \SHAR_EOF > 'dither'
#define dither_width 32
#define dither_height 32
static char dither_bits[] = {
0x29, 0xfd, 0x96, 0x64, 0xf9, 0xc9, 0xfc, 0xef, 0xd3, 0x5c, 0xdc, 0x45,
0xbf, 0x79, 0xb3, 0x9f, 0xb7, 0x3c, 0xd2, 0x22, 0xd4, 0xfd, 0xfb, 0xf7,
0xe1, 0xd5, 0xfb, 0xe3, 0x38, 0xbd, 0xef, 0xd2, 0x73, 0xdb, 0x5e, 0xd4,
0xbb, 0xda, 0x23, 0x22, 0xde, 0x2d, 0xc5, 0xf2, 0xd0, 0x99, 0xfd, 0xb7,
0xdf, 0xfb, 0xdf, 0x06, 0xd9, 0x90, 0xcc, 0x27, 0xf7, 0xf5, 0xcf, 0xf6,
0xcb, 0xea, 0xde, 0x1f, 0xb4, 0xa1, 0xcd, 0xfc, 0xfd, 0x7f, 0xbd, 0xea,
0xd5, 0x5b, 0x00, 0x8c, 0x9d, 0x59, 0xd3, 0xdd, 0xf6, 0x79, 0xde, 0x4d,
0xbf, 0x4b, 0xcc, 0x7d, 0xe4, 0xf8, 0xff, 0xcc, 0xa3, 0x7b, 0xc5, 0xad,
0xb8, 0x35, 0xdf, 0xa4, 0xda, 0xfc, 0xfd, 0xdc, 0x91, 0x02, 0x03, 0x7e,
0x38, 0x94, 0xf8, 0x03, 0xf9, 0xbb, 0x7f, 0x7e, 0xa5, 0xfd, 0x9d, 0xc7,
0xdd, 0x34, 0x93, 0xec, 0x6d, 0x6a, 0xbb, 0x8b};
SHAR_EOF
fi
if test -f 'dither.xbm'
then
echo shar: "will not over-write existing file 'dither.xbm'"
else
cat << \SHAR_EOF > 'dither.xbm'
#define dither_width 32
#define dither_height 32
static char dither_bits[] = {
0x29, 0xcd, 0x94, 0x64, 0xf9, 0xc9, 0x3c, 0xeb, 0xd3, 0x5c, 0xdc, 0x45,
0xbf, 0x7b, 0xb3, 0x9f, 0xb7, 0x76, 0xdd, 0x22, 0xd4, 0xd9, 0x6c, 0xf7,
0x75, 0x53, 0xdb, 0x23, 0x6a, 0x75, 0x4e, 0xb2, 0xdb, 0x50, 0xdd, 0x97,
0xbb, 0xdf, 0xa7, 0x3e, 0xde, 0x77, 0xbc, 0xf2, 0xd0, 0xba, 0x0c, 0xb5,
0xdb, 0xb1, 0xdb, 0x26, 0x99, 0xb4, 0xdc, 0xa5, 0xf7, 0xf5, 0xaf, 0xf6,
0xcb, 0xae, 0xba, 0x1b, 0x74, 0xf1, 0x95, 0xea, 0xd5, 0x3b, 0xb9, 0xf1,
0xd5, 0x5b, 0x5c, 0x86, 0x9d, 0xd9, 0xd3, 0xdb, 0xf6, 0xf9, 0xd7, 0x4f,
0xbf, 0x4b, 0x4c, 0x7d, 0xe4, 0x7c, 0x7f, 0xc6, 0xa3, 0xeb, 0xc5, 0xa7,
0x9b, 0x35, 0xd7, 0xa6, 0x92, 0x52, 0x58, 0xc8, 0xd2, 0xec, 0xbf, 0x7e,
0xbe, 0x95, 0xf1, 0x33, 0xfd, 0xbf, 0x5e, 0x4e, 0xa5, 0xed, 0xdd, 0xdb,
0xdd, 0x24, 0x93, 0xe8, 0x6d, 0x7a, 0xbb, 0x8b};
SHAR_EOF
fi
if test -f 'icon_open.h'
then
echo shar: "will not over-write existing file 'icon_open.h'"
else
cat << \SHAR_EOF > 'icon_open.h'
/*
* xman - X window system manual page display program.
*
* $XConsortium: icon_open.h,v 1.2 88/09/06 17:48:06 jim Exp $
* $Athena: icon_open.h,v 4.0 88/08/31 22:12:16 kit Exp $
*
* Copyright 1987, 1988 Massachusetts Institute of Technology
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. M.I.T. makes no representations about the
* suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* Author: Chris D. Peterson, MIT Project Athena
* Created: January 29, 1988
*/
#define icon_open_width 30
#define icon_open_height 30
static char icon_open_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xf0, 0x00, 0xf8, 0xdf, 0xfe, 0x07,
0x3e, 0xfc, 0x0f, 0x1f, 0x06, 0x00, 0x00, 0x18, 0x06, 0x30, 0x03, 0x18,
0xc6, 0x31, 0xe3, 0x18, 0x36, 0x32, 0x13, 0x1b, 0x06, 0x30, 0x03, 0x18,
0xc6, 0xf1, 0xe3, 0x18, 0x36, 0xe2, 0x11, 0x1b, 0x06, 0x00, 0x00, 0x18,
0xc6, 0xf1, 0xe3, 0x18, 0x36, 0x32, 0x13, 0x1b, 0x06, 0x30, 0x03, 0x18,
0xc6, 0xf1, 0xe3, 0x18, 0x36, 0x32, 0x10, 0x1b, 0x06, 0x30, 0x00, 0x18,
0xc6, 0x01, 0xe0, 0x18, 0x36, 0x3a, 0x17, 0x1b, 0x06, 0xf8, 0x07, 0x18,
0xc6, 0xd9, 0xe6, 0x18, 0x36, 0xda, 0x16, 0x1b, 0x06, 0x18, 0x06, 0x18,
0x06, 0x18, 0x06, 0x18, 0xc6, 0x03, 0xf0, 0x18, 0xfe, 0x1f, 0xfe, 0x1f,
0x3e, 0xfc, 0x0f, 0x1f, 0x06, 0xc0, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00};
SHAR_EOF
fi
if test -f 'idraw.icon'
then
echo shar: "will not over-write existing file 'idraw.icon'"
else
cat << \SHAR_EOF > 'idraw.icon'
#define ditroff_width 64
#define ditroff_height 64
static char ditroff_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0xf0, 0x3f, 0x01, 0x00,
0x00, 0x01, 0x88, 0x88, 0x0c, 0xc0, 0x01, 0x00, 0x00, 0x01, 0x10, 0x11,
0x83, 0x03, 0x07, 0x00, 0x00, 0x01, 0x44, 0xc4, 0x80, 0x03, 0x18, 0x00,
0x00, 0x01, 0x20, 0x22, 0x80, 0x03, 0x20, 0x00, 0x00, 0x01, 0x00, 0x18,
0xc0, 0x07, 0xc0, 0x00, 0x00, 0x01, 0x00, 0x04, 0xc0, 0x07, 0x00, 0x01,
0x00, 0x41, 0x44, 0x06, 0xc0, 0x07, 0x00, 0x02, 0x00, 0x21, 0x22, 0x02,
0xe0, 0x0f, 0x00, 0x02, 0x00, 0x89, 0x88, 0x01, 0xe0, 0x0f, 0x00, 0x04,
0x00, 0x11, 0x91, 0x01, 0xf0, 0x1f, 0x00, 0x08, 0x00, 0x01, 0xc0, 0x00,
0x30, 0x1f, 0x00, 0x08, 0x00, 0x01, 0x62, 0x00, 0x30, 0x1f, 0x00, 0x10,
0x00, 0x89, 0x48, 0x00, 0x38, 0x3f, 0x00, 0x10, 0x00, 0x11, 0x31, 0x00,
0x18, 0x3e, 0x00, 0x20, 0x00, 0x41, 0x24, 0x00, 0x1c, 0x7e, 0x00, 0x20,
0x00, 0x21, 0x22, 0x00, 0x0c, 0x7c, 0x00, 0x20, 0x00, 0x01, 0x10, 0x00,
0x0c, 0x7c, 0x00, 0x40, 0x00, 0x01, 0x10, 0x00, 0x0e, 0xfc, 0x00, 0x40,
0x00, 0x41, 0x14, 0x00, 0x06, 0xf8, 0x00, 0x40, 0x00, 0x21, 0x12, 0x00,
0xff, 0xff, 0x01, 0x40, 0x00, 0x89, 0x18, 0x00, 0xff, 0xff, 0x01, 0x40,
0x00, 0x11, 0x11, 0x00, 0x03, 0xf0, 0x01, 0x40, 0x00, 0x41, 0x10, 0x80,
0x03, 0xf0, 0x03, 0x40, 0x00, 0x01, 0x10, 0x80, 0x01, 0xe0, 0x03, 0x40,
0x00, 0x89, 0x18, 0x80, 0x01, 0xe0, 0x03, 0x40, 0x00, 0x11, 0x31, 0xc0,
0x01, 0xe0, 0x07, 0x20, 0x00, 0x41, 0x24, 0xc0, 0x00, 0xc0, 0x07, 0x20,
0x00, 0x21, 0x22, 0xf0, 0x00, 0xc0, 0x0f, 0x20, 0x00, 0x01, 0x40, 0xfe,
0x07, 0xf8, 0xff, 0x10, 0x00, 0x11, 0x51, 0xfe, 0x07, 0xf8, 0xff, 0x10,
0x00, 0x41, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x21, 0xa2, 0x00,
0x00, 0x00, 0x00, 0x38, 0x00, 0x89, 0x88, 0x01, 0x00, 0x00, 0x00, 0x7c,
0x00, 0x11, 0x11, 0x03, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x01, 0x00, 0x06,
0x00, 0x00, 0x00, 0xfe, 0x00, 0x21, 0x02, 0x06, 0x00, 0x00, 0x00, 0xff,
0x00, 0x89, 0x88, 0x18, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x11, 0x11, 0x31,
0x00, 0x00, 0xe0, 0xff, 0x00, 0x41, 0x44, 0xc0, 0x00, 0x00, 0xf8, 0xff,
0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0xff, 0xff, 0x00, 0x09, 0x88, 0x88,
0x1c, 0xc0, 0xf1, 0xff, 0x00, 0x11, 0x11, 0x11, 0xf1, 0x3f, 0xe1, 0xff,
0x00, 0x41, 0x44, 0x44, 0x44, 0x04, 0x81, 0xff, 0x00, 0x21, 0x02, 0x22,
0x20, 0x22, 0x01, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x00, 0xff, 0xff, 0xff,
0xff, 0xff, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0,
0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x03, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x81, 0x43, 0xc3, 0x41, 0x10, 0x00, 0x00, 0x00, 0x41, 0xc2, 0x24,
0x42, 0x10, 0x00, 0x00, 0x00, 0x41, 0x42, 0x20, 0x42, 0x10, 0x00, 0x00,
0x00, 0x41, 0x42, 0x20, 0x42, 0x12, 0x00, 0x00, 0x00, 0x41, 0x42, 0x20,
0x42, 0x12, 0x00, 0x00, 0x00, 0x41, 0x42, 0x20, 0x43, 0x15, 0x00, 0x00,
0x80, 0x83, 0x47, 0xc0, 0x82, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
SHAR_EOF
fi
if test -f 'moon.icon'
then
echo shar: "will not over-write existing file 'moon.icon'"
else
cat << \SHAR_EOF > 'moon.icon'
#define moon_width 64
#define moon_height 64
static char noname_bits[] = {
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x10,0xf8,
0xff,0xff,0xff,0xff,0x07,0x82,0xc4,0xe0,0xff,0xff,0xff,0xff,0x01,0x10,0x04,
0x80,0xff,0xff,0xff,0xff,0x10,0x47,0x50,0x0d,0xff,0xff,0xff,0x7f,0xc0,0x21,
0x02,0x15,0xfe,0xff,0xff,0x1f,0x20,0x36,0x44,0x31,0xf8,0xff,0xff,0x0f,0x69,
0x8b,0xd8,0x9a,0xf0,0xff,0xff,0x07,0xec,0x1a,0xa0,0xe3,0xe0,0xff,0xff,0x27,
0xa0,0x85,0x04,0x8f,0xe2,0xff,0xff,0x03,0x55,0x0b,0xf5,0x28,0xc5,0xff,0xff,
0x41,0xa2,0x20,0x02,0x67,0x81,0xff,0xff,0x90,0x89,0x84,0x20,0x2d,0x10,0xff,
0xff,0x04,0xb1,0x80,0x04,0x0a,0x04,0xff,0x7f,0x40,0x5a,0x52,0x10,0x40,0x01,
0xfe,0x7f,0x14,0x81,0x48,0x04,0x99,0x48,0xfe,0x3f,0xa0,0x62,0x52,0x52,0x06,
0x08,0xfc,0x3f,0x2a,0x02,0x89,0x00,0x22,0x42,0xfc,0x3f,0x16,0xa4,0x2d,0x42,
0x82,0x04,0xfc,0x1f,0x81,0x44,0x06,0xdd,0x0d,0x20,0xf8,0x1f,0x14,0x82,0x30,
0x20,0x10,0x04,0xf8,0x9f,0x00,0x9f,0x0a,0x33,0x65,0x91,0xf8,0x1f,0xc9,0x28,
0x00,0x0c,0x80,0x00,0xf8,0x1f,0x50,0x64,0x12,0x54,0x04,0x01,0xf9,0x1f,0xc9,
0xa0,0x00,0x08,0x10,0x03,0xf8,0x9f,0x84,0x19,0x04,0x28,0x81,0x00,0xf8,0x1f,
0x08,0xee,0x10,0x11,0x40,0x92,0xf8,0x1f,0xb5,0x50,0x01,0x62,0x38,0x00,0xf8,
0x1f,0x56,0x08,0x02,0x48,0x87,0x00,0xf8,0x1f,0xa9,0x09,0x41,0x00,0x00,0x80,
0xf8,0x1f,0x56,0x40,0x00,0x00,0x00,0x00,0xf8,0x9f,0x50,0x12,0x00,0x00,0x00,
0x40,0xf8,0x1f,0xaa,0x20,0x11,0x00,0x40,0x0e,0xf8,0x1f,0x0c,0x05,0x00,0x20,
0x90,0x11,0xf8,0x3f,0x90,0x02,0x00,0x00,0x40,0x10,0xfc,0x3f,0xc1,0x52,0x02,
0x04,0x20,0x94,0xfc,0x3f,0x20,0x8c,0x00,0x00,0x21,0x0a,0xfc,0x7f,0x92,0x08,
0xf2,0x21,0xa0,0x04,0xfe,0x7f,0x90,0x16,0x0c,0x02,0xc0,0x03,0xfe,0xff,0x48,
0xa1,0x06,0x08,0x00,0x00,0xff,0xff,0x10,0x5a,0x01,0x30,0x00,0x08,0xff,0xff,
0xb1,0xce,0x40,0x28,0x80,0x80,0xff,0xff,0xc3,0x93,0xe0,0x41,0x00,0xc0,0xff,
0xff,0x47,0xc1,0x70,0x2c,0x20,0xe0,0xff,0xff,0x07,0x8a,0x80,0x28,0x00,0xe2,
0xff,0xff,0x0f,0x0a,0x49,0x06,0x12,0xf0,0xff,0xff,0x1f,0x00,0x73,0x31,0x40,
0xf8,0xff,0xff,0x7f,0x90,0x9e,0x87,0x00,0xfe,0xff,0xff,0xff,0x10,0x70,0x48,
0x00,0xff,0xff,0xff,0xff,0x81,0x40,0x02,0x84,0xff,0xff,0xff,0xff,0x07,0x04,
0x90,0xe0,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff};
SHAR_EOF
fi
if test -f 'plonk.xbm'
then
echo shar: "will not over-write existing file 'plonk.xbm'"
else
cat << \SHAR_EOF > 'plonk.xbm'
#define WIDTHxHEIGHT_width 60
#define WIDTHxHEIGHT_height 60
static char WIDTHxHEIGHT_bits[] = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf8, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
0xcd, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x85, 0xf5, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfb, 0x9d, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
0x1d, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0x3d, 0xf8, 0xdf, 0xff,
0xff, 0xff, 0xff, 0xfb, 0x7d, 0x80, 0xef, 0xff, 0xff, 0x03, 0xf8, 0xfb,
0xfd, 0x80, 0xf3, 0xff, 0xff, 0x00, 0xf0, 0xfb, 0x6d, 0x80, 0xc0, 0xff,
0x3f, 0x00, 0xef, 0xfb, 0x1d, 0x02, 0xfc, 0xff, 0x1f, 0x80, 0xff, 0xfb,
0x5d, 0x07, 0xfe, 0xff, 0x0b, 0xe0, 0xff, 0xfb, 0x7d, 0x0f, 0xe0, 0xff,
0x03, 0xf0, 0xff, 0xfb, 0xfd, 0x67, 0xc8, 0xff, 0x03, 0xf8, 0xff, 0xfb,
0xfd, 0x67, 0xd8, 0xff, 0x03, 0xfc, 0xff, 0xfb, 0xfd, 0x67, 0xc2, 0xff,
0x03, 0xfe, 0xff, 0xfb, 0xfd, 0x6b, 0xc6, 0xff, 0x03, 0xff, 0xff, 0xfb,
0xfd, 0xed, 0xb0, 0xff, 0x03, 0xfc, 0xff, 0xfb, 0xfd, 0xff, 0x7f, 0xfc,
0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfb,
0xfd, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x7f, 0xef, 0xf3, 0xff, 0xff, 0xfb,
0xfd, 0xff, 0x3f, 0xc6, 0xf0, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x3f, 0x00,
0xe0, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x1f, 0x00, 0xc0, 0xff, 0xff, 0xfb,
0xfd, 0xff, 0x1f, 0x10, 0x80, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x0f, 0x20,
0x00, 0xff, 0xff, 0xfb, 0xfd, 0xff, 0x8f, 0xe4, 0x20, 0xfe, 0xff, 0xfb,
0xfd, 0xff, 0x2f, 0x37, 0x48, 0xfe, 0xff, 0xfb, 0xfd, 0xff, 0x5b, 0x70,
0xdc, 0xfd, 0xff, 0xfb, 0xfd, 0xff, 0x58, 0x90, 0x66, 0xfd, 0xff, 0xfb,
0xfd, 0xff, 0xb8, 0x15, 0x37, 0xfb, 0xff, 0xfb, 0xfd, 0x7f, 0xb4, 0xd6,
0x1e, 0xfa, 0xff, 0xfb, 0xfd, 0x3f, 0xf6, 0xc6, 0xdd, 0xf4, 0xff, 0xfb,
0xfd, 0xef, 0x57, 0xa7, 0x51, 0xf4, 0xff, 0xfb, 0xfd, 0xf7, 0x10, 0xb7,
0x4b, 0xf1, 0xff, 0xfb, 0xfd, 0x5b, 0xa9, 0xbb, 0xcf, 0xe9, 0xff, 0xfb,
0xfd, 0x1d, 0xcd, 0xbb, 0xd7, 0xc9, 0xff, 0xfb, 0xfd, 0xed, 0xbf, 0x3b,
0xcf, 0x93, 0xff, 0xfb, 0xfd, 0xee, 0xaf, 0xbd, 0x9f, 0x32, 0xff, 0xfb,
0x3d, 0xff, 0xb3, 0xfd, 0xff, 0x5e, 0xfe, 0xfb, 0x9d, 0xf7, 0xdf, 0xfd,
0xff, 0xfe, 0xfc, 0xfb, 0xdd, 0xff, 0xff, 0xfc, 0xff, 0x5d, 0xf9, 0xfb,
0xc5, 0xff, 0xff, 0xfc, 0xff, 0xf3, 0xe1, 0xfb, 0xfd, 0xff, 0xff, 0xff,
0xff, 0xef, 0x9f, 0xfb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xfb,
0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xb5, 0x85, 0xf7, 0xc3,
0xbb, 0xbb, 0x6d, 0xfb, 0xad, 0x76, 0xf7, 0xbd, 0xb3, 0xdb, 0xab, 0xfb,
0x1d, 0x77, 0xf7, 0xbd, 0xab, 0xdb, 0xc7, 0xfb, 0x05, 0x74, 0xf7, 0xbd,
0x9b, 0xe3, 0x01, 0xfb, 0x1d, 0x87, 0xf7, 0xbd, 0xbb, 0xdb, 0xc7, 0xfb,
0xaf, 0xf6, 0xf7, 0xbd, 0xbb, 0xbb, 0xab, 0xfb, 0xb7, 0xf5, 0x87, 0xc3,
0xbb, 0xbb, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
SHAR_EOF
fi
if test -f 'scrawl.xbm'
then
echo shar: "will not over-write existing file 'scrawl.xbm'"
else
cat << \SHAR_EOF > 'scrawl.xbm'
#define x_icon_width 64
#define x_icon_height 64
static char x_icon_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x08, 0xe0, 0x00, 0x38, 0x04, 0x24, 0x00, 0x00, 0x08, 0x10, 0x61, 0x44,
0x04, 0x24, 0x00, 0x00, 0x70, 0x10, 0x98, 0x44, 0x44, 0x24, 0x00, 0x00,
0x80, 0x10, 0x08, 0x44, 0x44, 0x24, 0x00, 0x00, 0x00, 0x11, 0x09, 0x64,
0x48, 0x22, 0x00, 0x00, 0x08, 0xe1, 0x08, 0x98, 0xb0, 0xe1, 0x01, 0x00,
0xf0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x03,
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02,
0x00, 0xfe, 0x03, 0x00, 0x80, 0x00, 0x00, 0x02, 0x80, 0x01, 0x1e, 0x00,
0x80, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x30, 0x00, 0x80, 0x00, 0x00, 0x02,
0x60, 0x00, 0x60, 0x00, 0x80, 0x00, 0x00, 0x02, 0x20, 0x00, 0x40, 0x00,
0x80, 0x00, 0x00, 0x02, 0x30, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x00, 0x02,
0x10, 0x00, 0x80, 0x01, 0x80, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x01,
0x80, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x02,
0x08, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x02,
0x80, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02,
0x04, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x02,
0x80, 0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x02,
0x30, 0x00, 0x00, 0x06, 0x80, 0xff, 0xff, 0x03, 0xc0, 0x07, 0xc0, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x1b, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x1f, 0x00,
0x00, 0x00, 0x18, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x80, 0x00, 0x0c, 0x00,
0x00, 0x04, 0x00, 0x00, 0x40, 0x01, 0xe4, 0x01, 0x00, 0x06, 0x00, 0x00,
0x20, 0x02, 0x3c, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10, 0x04, 0x00, 0x0c,
0x00, 0xc6, 0x1f, 0x00, 0x08, 0x08, 0x00, 0x08, 0x00, 0x24, 0x20, 0x00,
0x04, 0x10, 0xfc, 0x0f, 0xf0, 0x1f, 0x20, 0x00, 0xfe, 0x1f, 0x02, 0x00,
0x18, 0x30, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xc0, 0x21, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf9, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x0c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x83, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
SHAR_EOF
fi
if test -f 'xchess.icon'
then
echo shar: "will not over-write existing file 'xchess.icon'"
else
cat << \SHAR_EOF > 'xchess.icon'
#define icon_width 48
#define icon_height 48
static char icon_bits[] = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80,
0xc1, 0xff, 0xff, 0xff, 0xff, 0x83, 0x41, 0x00, 0x00, 0x00, 0x00, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82, 0x41, 0xf0, 0xf0, 0xf0, 0xf0, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82, 0x41, 0x0f, 0x0f, 0x0f, 0x0f, 0x82,
0x41, 0x00, 0x00, 0x00, 0x00, 0x82, 0xc1, 0xff, 0xff, 0xff, 0xff, 0x83,
0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x41, 0xc4, 0x89, 0x3c, 0xcf, 0x83,
0x41, 0x24, 0x88, 0x04, 0x41, 0x80, 0x81, 0x22, 0x88, 0x04, 0x41, 0x80,
0x01, 0x21, 0xf8, 0x1c, 0xcf, 0x83, 0x81, 0x22, 0x88, 0x04, 0x08, 0x82,
0x41, 0x24, 0x88, 0x04, 0x08, 0x82, 0x41, 0xc4, 0x89, 0x3c, 0xcf, 0x83,
0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
SHAR_EOF
fi
if test -f 'xlogomenu'
then
echo shar: "will not over-write existing file 'xlogomenu'"
else
cat << \SHAR_EOF > 'xlogomenu'
#define noname_width 64
#define noname_height 64
static char noname_bits[] = {
0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xf8,0xfe,0xff,0x01,0x00,0x00,0x00,0x00,
0xf8,0xfc,0xff,0x03,0x00,0x00,0x00,0x00,0x7c,0xf8,0xff,0x07,0x00,0x00,0x00,
0x00,0x3e,0xf8,0xff,0x07,0x00,0x00,0x00,0x00,0x1f,0xf0,0xff,0x0f,0x00,0x00,
0x00,0x80,0x0f,0xe0,0xff,0x1f,0x00,0x00,0x00,0x80,0x0f,0xc0,0xff,0x3f,0x00,
0x00,0x00,0xc0,0x07,0xc0,0xff,0x3f,0x00,0x00,0x00,0xe0,0x03,0x80,0xff,0x7f,
0x00,0x00,0x00,0xf0,0x01,0x00,0xff,0xff,0x00,0x00,0x00,0xf8,0x00,0x00,0xfe,
0xff,0x01,0x00,0x00,0xf8,0x00,0x00,0xfe,0xff,0x01,0x00,0x00,0x7c,0x00,0x00,
0xfc,0xff,0x03,0x00,0x00,0x3e,0x00,0x00,0xf8,0xff,0x07,0x00,0x00,0x1f,0x00,
0x00,0xf0,0xff,0x0f,0x00,0x80,0x0f,0x00,0x00,0xf0,0xff,0x0f,0x00,0xc0,0x07,
0x00,0x00,0xe0,0xff,0x1f,0x00,0xc0,0x07,0x00,0x00,0xc0,0xff,0x3f,0x00,0xe0,
0x03,0x00,0x00,0x80,0xff,0x7f,0x00,0xf0,0x01,0x00,0x00,0x80,0xff,0x7f,0x00,
0xf8,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x7c,0x00,0x00,0x00,0x00,0xfe,0xff,
0x01,0x7c,0x00,0x00,0x00,0x00,0xfc,0xff,0x03,0x3e,0x00,0x00,0x00,0x00,0xfc,
0xff,0x03,0x1f,0x00,0x00,0x00,0x00,0xf8,0xff,0x87,0x0f,0x00,0x00,0x00,0x00,
0xf0,0xff,0xcf,0x07,0x00,0x00,0x00,0x00,0xe0,0xff,0xcf,0x07,0x00,0x00,0x00,
0x00,0xe0,0xff,0xe7,0x03,0x00,0x00,0x00,0x00,0xc0,0xff,0xf3,0x01,0x00,0x00,
0x00,0x00,0x80,0xff,0xf9,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfc,0x00,0x00,
0x00,0x00,0x00,0x00,0x7f,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0xfe,0x01,
0x00,0x00,0x00,0x00,0x00,0x3e,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x9f,0xff,
0x07,0x00,0x00,0x00,0x00,0x80,0xcf,0xff,0x07,0x00,0x00,0x00,0x00,0xc0,0xe7,
0xff,0x0f,0x00,0x00,0x00,0x00,0xc0,0xe7,0xff,0x1f,0x00,0x00,0x00,0x00,0xe0,
0xc3,0xff,0x3f,0x00,0x00,0x00,0x00,0xf0,0xc1,0xff,0x3f,0x00,0x00,0x00,0x00,
0xf8,0x80,0xff,0x7f,0x00,0x00,0x00,0x00,0x7c,0x00,0xff,0xff,0x00,0x00,0x00,
0x00,0x7c,0x00,0xfe,0xff,0x01,0x00,0x00,0x00,0x3e,0x00,0xfe,0xff,0x01,0x00,
0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0x00,0x00,0x00,0x00,
0x0e,0x00,0xc0,0x07,0x7e,0x00,0x06,0x00,0x0c,0x00,0xe0,0x03,0xcc,0x00,0x06,
0x00,0x0c,0x00,0xe0,0x03,0xcc,0x3c,0x3f,0x8f,0x0f,0x00,0xf0,0x01,0x7c,0x60,
0x86,0xd9,0x0c,0x00,0xf8,0x00,0x6c,0x7c,0x86,0xdf,0x0c,0x00,0x7c,0x00,0xcc,
0x66,0x86,0xc1,0x0c,0x00,0x3e,0x00,0xcc,0x66,0xa6,0xd9,0x0c,0x00,0x3e,0x00,
0xde,0xfd,0x1c,0x8f,0x0f,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,
0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,
0x03,0x00,0x00,0x00,0xf0,0xff,0x0f,0xe0,0x03,0x00,0x00,0x00,0xe0,0xff,0x1f,
0xf0,0x01,0x00,0x00,0x00,0xe0,0xff,0x1f,0xf8,0x00,0x00,0x00,0x00,0xc0,0xff,
0x3f,0x7c,0x00,0x00,0x00,0x00,0x80,0xff,0x7f,0x3e,0x00,0x00,0x00,0x00,0x00,
0xff,0xff};
SHAR_EOF
fi
if test -f 'xqmark'
then
echo shar: "will not over-write existing file 'xqmark'"
else
cat << \SHAR_EOF > 'xqmark'
#define noname_width 32
#define noname_height 32
static char noname_bits[] = {
0x55,0x55,0x55,0x55,0xaa,0xaa,0xaa,0xaa,0x55,0x55,0x55,0x55,0xaa,0x02,0xa0,
0xaa,0x55,0x01,0x40,0x55,0xaa,0x00,0x80,0xaa,0x55,0x00,0x00,0x55,0x2a,0xa0,
0x02,0xaa,0x55,0x50,0x05,0x54,0x2a,0xa0,0x0a,0xaa,0x55,0x50,0x05,0x54,0xaa,
0xaa,0x02,0xaa,0x55,0x55,0x01,0x55,0xaa,0xaa,0x80,0xaa,0x55,0x55,0x40,0x55,
0xaa,0x2a,0xa0,0xaa,0x55,0x15,0x50,0x55,0xaa,0x2a,0xa8,0xaa,0x55,0x15,0x50,
0x55,0xaa,0x2a,0xa8,0xaa,0x55,0x15,0x50,0x55,0xaa,0x2a,0xa8,0xaa,0x55,0x55,
0x55,0x55,0xaa,0xaa,0xaa,0xaa,0x55,0x55,0x55,0x55,0xaa,0x2a,0xa8,0xaa,0x55,
0x15,0x50,0x55,0xaa,0x2a,0xa8,0xaa,0x55,0x15,0x50,0x55,0xaa,0x2a,0xa8,0xaa,
0x55,0x55,0x55,0x55,0xaa,0xaa,0xaa,0xaa};
SHAR_EOF
fi
cd ..
if test -f 'patchlevel.h'
then
echo shar: "will not over-write existing file 'patchlevel.h'"
else
cat << \SHAR_EOF > 'patchlevel.h'
#define PATCHLEVEL 0
SHAR_EOF
fi
if test -f 'xdesk.1'
then
echo shar: "will not over-write existing file 'xdesk.1'"
else
cat << \SHAR_EOF > 'xdesk.1'
.de EX \"Begin example
.ne 5
.if n .sp 1
.if t .sp .5
.nf
.in +.5i
..
.de EE
.fi
.in -.5i
.if n .sp 1
.if t .sp .5
..
.TH XDESK
.SH NAME
xdesk \- desktop script execution
.SH SYNOPSIS
\f3xcalc\f1 config_file
.sp
.SH DESCRIPTION
xdesk is a simple utility which allows the workstation programmer to
execute a command by "clicking" on a displayed X-bitmap format "icon".
.sp
.SH OPTIONS
.PP
.TP 8
.B \fB-w\fP[cell_width]
This option specifies the width which will be allocated on the canvas
plane for each bitmap image. If none is specified, the default value is
64 pixels.
.PP
.TP 8
.B \fB-h\fP[cell_height]
This option specifies the height which will be allocated on the canvas
plane for each bitmap image. If none is specified, the default value is
64 pixels.
.PP
.TP 8
.B \fB-p\fP[page_width]
This option specifies the length of the horizontal scrollbar. The default
value is five (5).
.PP
.TP 8
.B \fB-l\fP[page_length]
This option specifies the length of the vertical scrollbar. The default
value is five (5).
.PP
.TP 8
.B \fB-r\fP[max_rows]
This option specifies the maximum size of the canvas in "cells" per
row. The default is sixteen.
.PP
.TP 8
.B \fB-c\fP[max_cols]
This option specifies the maximum size of the canvas in "cells" per
column. The default is eight.
.PP
.TP 8
.B \fB-s\fP[v/h]
This option will turn off either the horizontal or verical scrollbar.
The default fot both is "on".
.PP
.TP 8
.B \fB-d\f1
Put dotted borders around every bitmap image.
.PP
.TP 8
.B \fB-t "title"\f1
This option changes the frame header to the specified "title".
The default value is the name of the executable.
.PP
.TP 8
.B \fBconfig-file\f1
This option specifies which config-file is to be used for display
of x-bitmap images. The format of the config file is as follows:
.RS
.nf
!comments
/wherever/bitmap-name,system-executable command-line &
.
.
.
.fi
.RE
.LP
\fINOTE:
.LP
It is highly reccommended that the ampersand be included, as otherwise
the exiting process may cause keyboard focus to be lost!!!\f1
.sp
.PP
.SH INSTALLATION
.PP
Xdesk requires the Xview and X libraries. The makefile will make just
one executable, named "xdesk". An Imake file is not included because
there are just two libraries, and one dependency.
.SH OPERATION
.PP
Xdesk utilizes both vertical and horizontal scrollbars. During
initialization the config file is read, and the corresponding bitmap names
are displayed in successive "cells" in the canvas window. The starting size
of this window is specified by the "-p", and "-l" options (explained
above). However, window resizing is supported.
.PP
.sp 2
.SH "SEE ALSO"
\f3X\f1(1), \f3system\f1(3)
.sp
.SH BUGS
.PP
The desktop should have several options which currently aren't implemented,
such as re-scanning of the config file, and maybe a scrollable console
window, rather than depending on the parent window for status information.
.PP
This application should really be implemented exclusively with the X Toolkit.
However, the author liked the Xview implementation of scrollbars much
better :-).
.sp
.SH COPYRIGHT
Copyright 1990, The Author.
.br
See \f3X(1)\f1 for a full statement of rights and permissions.
.sp
.SH AUTHOR
Kevin Carothers
SHAR_EOF
fi
if test -f 'xdesk.c'
then
echo shar: "will not over-write existing file 'xdesk.c'"
else
cat << \SHAR_EOF > 'xdesk.c'
/*
*/
#include <stdio.h>
#include <X.h>
#include <Xlib.h> /* Using Xlib graphics */
#include <Xutil.h>
#include <xview/xview.h>
#include <xview/canvas.h>
#include <xview/scrollbar.h>
#include <xview/svrimage.h>
#include <xview/xv_xrect.h>
#include "xdesk.h"
#define CELL_W 64
#define CELL_H 64
#define CELLS_PHP 5 /* when paging w/scrollbar */
#define CELLS_PVP 5 /* when paging w/scrollbar */
#define CELLS_PR 8
#define CELLS_PC 16
#define PTMAX 200
int Cell_width = CELL_W;
int Cell_height = CELL_H;
int Cells_per_hor_page = CELLS_PHP;
int Cells_per_ver_page = CELLS_PVP;
int Cells_per_row = CELLS_PR;
int Cells_per_col = CELLS_PC;
int Scr_h = TRUE; /* Horiz. Scrollbar ON */
int Scr_v = TRUE; /* Vert. Scrollbar ON */
int Dots = FALSE; /* Dot the individual cells */
Fptr *f_str;
extern char *malloc();
int Clicked_icon();
short closed_icon[] = {
#include "icons/Xdesk.icon"
};
Pixmap cell_map, icon_map; /* pixmap copied onto canvas window */
Pixmap clr_map;
Scrollbar horiz_scrollbar;
Scrollbar vert_scrollbar;
GC gc, revgc; /* General usage GC */
XGCValues gcvalues;
char *p;
main(argc, argv)
int argc;
char *argv[];
{
Server_image closed_image;
Frame frame;
Canvas canvas;
void repaint_proc();
short x, y, pt = 0;
XPoint points[256]; /* keep Xlib calls to a minimum */
char buf[80];
Display *dpy;
Icon icon;
unsigned int loc_b, loc_x, loc_y, loc_h, loc_w, x_hot, y_hot;
int i, ix, iy;
char lhs;
int rhs;
char *bp;
char frame_lab[100];
char filename[100];
Fptr *pp;
int status;
unsigned int depth;
Window DummyWin;
/* Initialize, create frame and canvas... */
xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL);
/*
Scan thru args
*/
strcpy(frame_lab, argv[0]);
*filename = '\0';
for(i=1; i < argc; i++) {
bp = buf;
strcpy(buf, *(argv+i));
if (*bp == '-') {
bp++;
lhs = *bp++; /* step past '-f' part */
if (lhs == 's')
rhs = (*bp=='v') ? 1 : (*bp=='h') ? 2 : 0;
else if (lhs == 'd')
Dots = TRUE;
else
rhs = atoi(bp);
switch (lhs)
{
case ('s'): /* Scrollbar switches */
if (!rhs)
p_usage();
else if (rhs == 1)
Scr_v = FALSE;
else if (rhs == 2)
Scr_h = FALSE;
break;
case ('w'): /* Width of cell */
if (!rhs)
p_usage();
Cell_width = rhs;
break;
case ('h'): /* Height of cell */
if (!rhs)
p_usage();
Cell_height = rhs;
break;
case ('p'): /* Horizontal page */
if (!rhs)
p_usage();
Cells_per_hor_page = rhs;
break;
case ('l'): /* length of page */
if (!rhs)
p_usage();
Cells_per_ver_page = rhs;
break;
case ('r'): /* Max. Rows */
if (!rhs)
p_usage();
Cells_per_row = rhs;
break;
case ('c'): /* Max. Cols */
if (!rhs)
p_usage();
Cells_per_col = rhs;
break;
case ('t'): /* Max. Cols */
if (i >= (argc-1))
p_usage();
i++;
strcpy(frame_lab, argv[i]);
break;
case ('d'): /* Dots on/off */
break;
default:
p_usage();
}
}
else {
strcpy(filename, bp);
}
}
frame = (Frame)xv_create(XV_NULL, FRAME,
FRAME_LABEL, frame_lab,
FRAME_SHOW_FOOTER, TRUE,
NULL);
canvas = (Canvas)xv_create(frame, CANVAS,
XV_WIDTH, Cell_width * Cells_per_hor_page,
XV_HEIGHT, Cell_height * Cells_per_ver_page,
CANVAS_WIDTH, Cell_width * Cells_per_row + 1,
CANVAS_HEIGHT, Cell_height * Cells_per_col + 1,
CANVAS_AUTO_EXPAND, FALSE,
CANVAS_AUTO_SHRINK, FALSE,
CANVAS_RETAINED, FALSE,
CANVAS_X_PAINT_WINDOW, TRUE,
CANVAS_REPAINT_PROC, repaint_proc,
OPENWIN_AUTO_CLEAR, FALSE,
NULL);
xv_set (canvas_paint_window(canvas),
WIN_EVENT_PROC, Clicked_icon,
WIN_CONSUME_EVENTS,
WIN_MOUSE_BUTTONS,
NULL,
NULL);
closed_image = (Server_image) xv_create(NULL, SERVER_IMAGE,
XV_WIDTH, 64,
XV_HEIGHT, 50,
SERVER_IMAGE_BITS, closed_icon,
NULL);
icon = (Icon) xv_create(frame, ICON,
ICON_IMAGE, closed_image,
XV_X, 100,
XV_Y, 100,
NULL);
xv_set(frame, FRAME_ICON, icon, NULL);
(void) Xd_getem(&f_str, filename);
if (f_str == (Fptr *) NULL)
exit();
if (Scr_v)
vert_scrollbar = xv_create(canvas, SCROLLBAR,
SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL,
SCROLLBAR_PIXELS_PER_UNIT, Cell_height,
SCROLLBAR_OBJECT_LENGTH, Cells_per_col,
SCROLLBAR_PAGE_LENGTH, Cells_per_ver_page,
SCROLLBAR_VIEW_LENGTH, Cells_per_ver_page,
NULL);
if (Scr_h)
horiz_scrollbar = xv_create(canvas, SCROLLBAR,
SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL,
SCROLLBAR_PIXELS_PER_UNIT, Cell_width,
SCROLLBAR_OBJECT_LENGTH, Cells_per_row,
SCROLLBAR_PAGE_LENGTH, Cells_per_hor_page,
SCROLLBAR_VIEW_LENGTH, Cells_per_hor_page,
NULL);
dpy = (Display *)xv_get(canvas, XV_DISPLAY);
XGetGeometry(dpy, DefaultRootWindow(dpy), &DummyWin,
&loc_x, &loc_y, &loc_w, &loc_h, &loc_b, &depth);
cell_map = XCreatePixmap(dpy, DefaultRootWindow(dpy),
Cells_per_row * Cell_width + 1,
Cells_per_col * Cell_height + 1,
depth); /* We only need a 1-bit deep pixmap */
gcvalues.graphics_exposures = True;
gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy));
gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy));
gcvalues.plane_mask = 1L;
gc = XCreateGC(dpy, cell_map,
GCForeground|GCBackground|GCGraphicsExposures, &gcvalues);
/* XSetWindowBackground(dpy, DefaultRootWindow(dpy), 0L); */
gcvalues.foreground = WhitePixel(dpy, DefaultScreen(dpy));
gcvalues.background = BlackPixel(dpy, DefaultScreen(dpy));
revgc = XCreateGC(dpy, DefaultRootWindow(dpy),
GCForeground|GCBackground|GCGraphicsExposures, &gcvalues);
pt = 0;
for (ix = pt = 0; ix <= (Cells_per_row * Cell_width); ix++)
for (iy=0; iy <= (Cells_per_col * Cell_height); iy++) {
points[pt].x = (short) ix; points[pt].y = (short) iy;
if (++pt == PTMAX) {
XDrawPoints(dpy, cell_map, revgc,
points, pt, CoordModeOrigin);
pt = 0;
}
}
if (pt) /* flush remaining points */
XDrawPoints(dpy, cell_map, revgc,
points, pt, CoordModeOrigin);
if (Dots) {
for (x = 0; x <= (Cell_width * Cells_per_row); x += 2)
for (y = 0; y <= Cell_height * Cells_per_col; y += 2) {
if (x % Cell_width != 0 && y % Cell_height != 0)
continue;
points[pt].x = x; points[pt].y = y;
if (++pt == PTMAX) {
XDrawPoints(dpy, cell_map, gc,
points, pt, CoordModeOrigin);
pt = 0;
}
}
if (pt) /* flush remaining points */
XDrawPoints(dpy, cell_map, gc,
points, pt, CoordModeOrigin);
}
pp = f_str;
x = y = 0;
while (pp->fnext != (Fptr *) 0)
{
icon_map = XCreatePixmap(dpy, DefaultRootWindow(dpy),
Cell_width + 5, Cell_height + 5, depth); /* 1-bit deep pixmap */
if(XReadBitmapFile(dpy, icon_map, pp->fname,
&loc_w, &loc_h, &icon_map, &x_hot, &y_hot) != BitmapSuccess)
{
printf("Error reading bitmap file \"%s\"\n", pp->fname);
exit();
}
#ifdef XXXY
printf("fname = %s, x = %d, y= %d\n", pp->fname, loc_w, loc_h);
#endif
pp->x_loc = x+1; /* Save for clicking coordinates later */
pp->y_loc = y+1;
XCopyPlane(dpy, icon_map, cell_map, gc, 1, 1,
Cell_width-1, Cell_height-1,
pp->x_loc, pp->y_loc, 1L);
x += Cell_width;
if(x >= Cell_width * Cells_per_row) {
x = 0;
y += Cell_height;
if(y >= Cell_height * Cells_per_col) {
printf("CONFIG FILE TOO BIG!\n");
exit();
}
}
status = XFreePixmap(dpy, icon_map);
if ((pp = pp->fnext) == (Fptr *) 0)
break;
}
/* shrink frame to minimal size and start notifier */
window_fit(frame);
xv_main_loop(frame);
}
void
repaint_proc(canvas, paint_window, dpy, win, xrects)
Canvas canvas;
Xv_Window paint_window;
Display *dpy;
Window win;
Xv_xrectlist *xrects;
{
int x, y;
if (Scr_h)
x = (int)xv_get(horiz_scrollbar, SCROLLBAR_VIEW_START);
if (Scr_v)
y = (int)xv_get(vert_scrollbar, SCROLLBAR_VIEW_START);
for (xrects->count--; xrects->count >= 0; xrects->count--) {
XCopyPlane(dpy, cell_map, win, gc,
xrects->rect_array[xrects->count].x,
xrects->rect_array[xrects->count].y,
xrects->rect_array[xrects->count].width,
xrects->rect_array[xrects->count].height,
xrects->rect_array[xrects->count].x,
xrects->rect_array[xrects->count].y, 1L);
}
}
int
Xd_getem(f_str, filename)
Fptr **f_str;
char *filename;
{
FILE *fp;
extern FILE *fopen();
Fptr *pp;
char buffer[400], *p, *lhs, *rhs;
int i;
extern char *index();
char c;
*f_str = (Fptr *) NULL;
if ((fp = fopen(((*filename == '\0') ? "./.config.x" : filename),
"r")) == (FILE *) NULL) {
printf("No config file. Bye\n");
return(TRUE);
}
c = 'a'; /* !EOF */
pp = *f_str; /* Asign Chain head */
while (c != EOF) {
i = 0;
*buffer = (char) 0;
do {
if ((c = getc(fp)) == EOF)
break;
if ((*(buffer + i) = c) == '\n')
*(buffer + i++) = '\0'; /* XView barfs on fields w/ '\n's */
else
i++;
} while ((c != '\n') && (c != EOF));
/* Only parse non-blank, and un-commented lins */
if ((strlen(buffer)) && *buffer != '!') {
if (*f_str == (Fptr *) NULL)
*f_str = pp = (Fptr *) malloc(sizeof(Fptr) );
lhs = buffer; /* Prune input line a bit */
if (p = index(buffer, ',')) {
*p = '\0';
rhs = p + 1;
pp->fname = malloc(strlen(lhs) + 2);
strcpy(pp->fname, lhs);
pp->fcmd = malloc(strlen(rhs) + 2);
strcpy(pp->fcmd, rhs);
pp->fnext = (Fptr *) malloc(sizeof(Fptr) );
pp = pp->fnext;
pp->fnext = (Fptr *) NULL;
}
} /* We're out of here */
}
fclose(fp);
return(0);
}
int
Clicked_icon(window, event)
Xv_Window window;
Event *event;
{
int i;
int rows, cols;
Fptr *pp;
Display *dpy;
int loc_w,loc_h,x_hot,y_hot;
Window dummyWin;
int butt_up;
rows = cols = 0;
if (event_is_button(event)) {
if (event_is_down(event) && event_id(event) == BUT(1))
butt_up = FALSE;
else if (event_is_up(event))
butt_up = TRUE;
}
else
return;
i = event_x(event);
do {
cols++;
i -= Cell_height;
} while(i > 0);
i = event_y(event);
do {
rows++;
i -= Cell_width;
} while(i > 0);
i = ((rows-1) * Cells_per_row) + cols - 1;
#ifdef XXX
printf("row = %d, col = %d, idx = %d, butt = %d\n",
rows, cols, i, butt_up);
#endif
for (pp = f_str; (pp->fnext != (Fptr *) NULL) && (i > 0); pp = pp->fnext, i--)
;
dpy = (Display *)xv_get(window, XV_DISPLAY);
if (pp->fnext != (Fptr *) 0)
{
#ifdef XXX
printf("cmd = \"%s\"\n", pp->fcmd);
#endif
XReadBitmapFile(dpy, cell_map, pp->fname,
&loc_w, &loc_h, &icon_map, &x_hot, &y_hot);
if ((!butt_up) && (*pp->fcmd))
system(pp->fcmd);
XCopyPlane(dpy, icon_map, (Window) xv_get(window, XV_XID),
(butt_up) ? gc : revgc, 0, 0, Cell_width, Cell_height,
pp->x_loc, pp->y_loc, 1L);
}
/* call repaint proc directly to update messages
repaint_proc((Canvas)NULL, window, dpy,
xv_get(window, XV_XID), (Xv_xrectlist *) NULL); */
}
p_usage()
{
printf("Usage: xdesk -w[cell_width] -h[cell_height] -p[page_width]\n");
printf(" -t \"title\" -l[page_length] -r[max_rows] -c[max_cols]\n");
printf(" -s[v/h]\n");
exit();
}
SHAR_EOF
fi
if test -f 'xdesk.h'
then
echo shar: "will not over-write existing file 'xdesk.h'"
else
cat << \SHAR_EOF > 'xdesk.h'
Frame frame;
struct Fptr
{
char *fname;
char *fcmd;
int x_loc;
int y_loc;
int clicked;
struct Fptr *fnext;
};
typedef struct Fptr Fptr;
SHAR_EOF
fi
if test -f 'Makefile'
then
echo shar: "will not over-write existing file 'Makefile'"
else
cat << \SHAR_EOF > 'Makefile'
LDFLAGS= -lxview -lX -lolgx
CFLAGS= -I/usr2/X11/include
TARGETS=xdesk
all: $(TARGETS)
${TARGETS}: $$@.c $$@.o
${CC} ${CFLAGS} -o $@ $@.o ${LDFLAGS}
SHAR_EOF
fi
exit 0
# End of shell archive
dan
----------------------------------------------------
O'Reilly && Associates argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list