kevin@ttidcb.tti.com (Kevin Carothers) (09/30/90)
Submitted-by: kevin@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@sun.com / argv@ora.com Opinions expressed reflect those of the author only.