ken@uunet.UU.NET (Ken Marks (x2425)) (08/21/90)
Submitted-by: balr!panasun!ken@uunet.UU.NET (Ken Marks (x2425)) Posting-number: Volume 8, Issue 80 Archive-name: chaos/part04 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 4 (of 10)." # Contents: fonts/push-rev.bdf master/colormapDb.c widgets/Compound.c # Wrapped by ken@panasun on Mon Jul 30 14:59:48 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'fonts/push-rev.bdf' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fonts/push-rev.bdf'\" else echo shar: Extracting \"'fonts/push-rev.bdf'\" \(18705 characters\) sed "s/^X//" >'fonts/push-rev.bdf' <<'END_OF_FILE' XSTARTFONT 2.1 XFONT push-rev XSIZE 16 75 75 XFONTBOUNDINGBOX 9 22 0 -7 XSTARTPROPERTIES 3 XFONT_ASCENT 15 XFONT_DESCENT 7 XDEFAULT_CHAR 32 XENDPROPERTIES XCHARS 99 XSTARTCHAR H1c XENCODING 28 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP X0380 X0E00 X1880 X3380 X6780 X4F80 XDF80 X9F80 XBF80 XBF80 XBF80 XBF80 XBF80 XBF80 X9F80 XDF80 X4F80 X6780 X3380 X1880 X0E00 X0380 XENDCHAR XSTARTCHAR H1d XENCODING 29 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XE000 X3800 X8C00 XE600 XF300 XF900 XFD80 XFC80 XFE80 XFE80 XFE80 XFE80 XFE80 XFE80 XFC80 XFD80 XF900 XF300 XE600 X8C00 X3800 XE000 XENDCHAR XSTARTCHAR H1e XENCODING 30 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 0 0 15 XBITMAP XENDCHAR XSTARTCHAR H1f XENCODING 31 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 7 9 0 1 XBITMAP X20 X30 X38 XFC XFE XFC X38 X30 X20 XENDCHAR XSTARTCHAR H20 XENCODING 32 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H21 XENCODING 33 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XE780 XE780 XE780 XE780 XE780 XE780 XE780 XFF80 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H22 XENCODING 34 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC980 XC980 XC980 XC980 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H23 XENCODING 35 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XE480 XE480 XE480 X8000 XC980 XC980 X0080 X9380 X9380 X9380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H24 XENCODING 36 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XF780 XC180 X9480 X9480 X9480 XC780 XF180 X9480 X9480 X9480 XC180 XF780 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H25 XENCODING 37 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8980 X6980 X6380 X1380 XE780 XE780 XC880 XC680 X9680 X9180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H26 XENCODING 38 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC780 X9380 X9380 XC780 XCF80 X8480 X2180 X3380 X2380 X8880 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H27 XENCODING 39 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF380 XF380 XE780 XCF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H28 XENCODING 40 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XF980 XF380 XE780 XE780 XCF80 XCF80 XCF80 XCF80 XCF80 XE780 XE780 XF380 XF980 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H29 XENCODING 41 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XCF80 XE780 XF380 XF380 XF980 XF980 XF980 XF980 XF980 XF380 XF380 XE780 XCF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2a XENCODING 42 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XE780 XA580 X8180 XC380 X8180 XA580 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2b XENCODING 43 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XE780 XE780 XE780 X0080 X0080 XE780 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2c XENCODING 44 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XE780 XE780 XF780 XEF80 XDF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2d XENCODING 45 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X8080 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2e XENCODING 46 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H2f XENCODING 47 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFC80 XF980 XF980 XF380 XF380 XE780 XE780 XCF80 XCF80 X9F80 X9F80 X3F80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H30 XENCODING 48 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9880 X9880 X9480 X9480 X8C80 X8C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H31 XENCODING 49 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF380 XE380 XC380 XF380 XF380 XF380 XF380 XF380 XF380 XC080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H32 XENCODING 50 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 XFC80 XF980 XF380 XE780 XCF80 X9E80 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H33 XENCODING 51 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 XFC80 XE180 XF880 XFC80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H34 XENCODING 52 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFD80 XF980 XF180 XE180 XC980 X9980 X3980 X0080 XF980 XF980 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H35 XENCODING 53 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8080 X9F80 X9F80 X8180 XFC80 XFC80 XFC80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H36 XENCODING 54 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9F80 X9F80 X8180 X9C80 X9C80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H37 XENCODING 55 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8080 XBC80 XBC80 XF980 XF980 XF380 XF380 XE780 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H38 XENCODING 56 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9C80 XC180 X9C80 X9C80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H39 XENCODING 57 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9C80 X9C80 XC080 XFC80 XFC80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3a XENCODING 58 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XE780 XE780 XFF80 XFF80 XFF80 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3b XENCODING 59 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XE780 XE780 XFF80 XFF80 XFF80 XE780 XE780 XF780 XEF80 XDF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3c XENCODING 60 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFC80 XF980 XF380 XE780 XCF80 X9F80 XCF80 XE780 XF380 XF980 XFC80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3d XENCODING 61 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X8080 X8080 XFF80 XFF80 X8080 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3e XENCODING 62 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 X9F80 XCF80 XE780 XF380 XF980 XFC80 XF980 XF380 XE780 XCF80 X9F80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H3f XENCODING 63 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 XFC80 XF980 XF380 XF380 XFF80 XF380 XF380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H40 XENCODING 64 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XE380 XC980 X9C80 X9080 X9480 X9480 X9180 X9F80 XCC80 XE180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H41 XENCODING 65 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF780 XE380 XE380 XC980 XC980 XC980 X9C80 X8080 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H42 XENCODING 66 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8380 X9980 X9980 X9980 X8380 X9980 X9C80 X9C80 X9C80 X8180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H43 XENCODING 67 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9F80 X9F80 X9F80 X9F80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H44 XENCODING 68 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8380 X9980 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9980 X8380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H45 XENCODING 69 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8080 X9F80 X9F80 X9F80 X8180 X9F80 X9F80 X9F80 X9F80 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H46 XENCODING 70 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8080 X9F80 X9F80 X9F80 X8180 X9F80 X9F80 X9F80 X9F80 X9F80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H47 XENCODING 71 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9F80 X9F80 X9880 X9C80 X9C80 X9880 XC280 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H48 XENCODING 72 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9C80 X9C80 X9C80 X8080 X9C80 X9C80 X9C80 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H49 XENCODING 73 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8180 XE780 XE780 XE780 XE780 XE780 XE780 XE780 XE780 X8180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4a XENCODING 74 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XE080 XF980 XF980 XF980 XF980 XF980 XF980 X9980 X9980 XC380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4b XENCODING 75 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9980 X9380 X8780 X8380 X9380 X9980 X9980 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4c XENCODING 76 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9F80 X9F80 X9F80 X9F80 X9F80 X9F80 X9F80 X9F80 X9F80 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4d XENCODING 77 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X3C80 X3C80 X1880 X1880 X0080 X2480 X2480 X3C80 X3C80 X3C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4e XENCODING 78 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9C80 X8C80 X8C80 X8480 X9480 X9080 X9880 X9880 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H4f XENCODING 79 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H50 XENCODING 80 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8180 X9C80 X9C80 X9C80 X9C80 X8180 X9F80 X9F80 X9F80 X9F80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H51 XENCODING 81 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 XC180 XE780 XF380 XF880 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H52 XENCODING 82 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8180 X9C80 X9C80 X9C80 X8180 X9380 X9980 X9980 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H53 XENCODING 83 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 XCF80 XE380 XF980 XFC80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H54 XENCODING 84 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X0080 XE780 XE780 XE780 XE780 XE780 XE780 XE780 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H55 XENCODING 85 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H56 XENCODING 86 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9C80 X9C80 XC980 XC980 XC980 XE380 XE380 XF780 XF780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H57 XENCODING 87 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X3E7F X367F X367F X227F XA280 X8880 X8880 XC980 XDD80 XDD80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H58 XENCODING 88 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9C80 X9C80 XC980 XC980 XE380 XE380 XC980 XC980 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H59 XENCODING 89 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X3C80 X3C80 X9980 X9980 XC380 XE780 XE780 XE780 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5a XENCODING 90 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X8080 XFC80 XFC80 XF980 XF380 XE780 XCF80 X9F80 X9F80 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5b XENCODING 91 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XC180 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XCF80 XC180 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5c XENCODING 92 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 X3F80 X9F80 X9F80 XCF80 XCF80 XE780 XE780 XF380 XF380 XF980 XF980 XFC80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5d XENCODING 93 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XC180 XF980 XF980 XF980 XF980 XF980 XF980 XF980 XF980 XF980 XF980 XF980 XC180 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5e XENCODING 94 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF780 XE380 XC980 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H5f XENCODING 95 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 X0000 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H60 XENCODING 96 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XCF80 XCF80 XE780 XF380 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H61 XENCODING 97 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC380 X9980 XF980 XC180 X9980 X9980 XC080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H62 XENCODING 98 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9F80 X9F80 X9F80 X9180 X8C80 X9C80 X9C80 X9C80 X8C80 X9180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H63 XENCODING 99 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC180 X9C80 X9F80 X9F80 X9F80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H64 XENCODING 100 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFC80 XFC80 XFC80 XC480 X9880 X9C80 X9C80 X9C80 X9880 XC480 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H65 XENCODING 101 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X8080 X9F80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H66 XENCODING 102 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF180 XE480 XE780 XE780 X8180 XE780 XE780 XE780 XE780 XE780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H67 XENCODING 103 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XC480 X9880 X9C80 X9C80 X9C80 X9880 XC480 XFC80 X9C80 XC180 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H68 XENCODING 104 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9F80 X9F80 X9F80 X9180 X8C80 X9C80 X9C80 X9C80 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H69 XENCODING 105 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF380 XF380 XFF80 XC380 XF380 XF380 XF380 XF380 XF380 XF380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6a XENCODING 106 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XF980 XF980 XFF80 XE180 XF980 XF980 XF980 XF980 XF980 XF980 XF980 X9980 XC380 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6b XENCODING 107 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 X9F80 X9F80 X9F80 X9980 X9380 X8780 X8780 X9380 X9980 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6c XENCODING 108 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XC380 XF380 XF380 XF380 XF380 XF380 XF380 XF380 XF380 XF380 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6d XENCODING 109 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X4980 X2480 X2480 X2480 X2480 X2480 X2480 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6e XENCODING 110 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XA180 X8C80 X9C80 X9C80 X9C80 X9C80 X9C80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H6f XENCODING 111 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC180 X9C80 X9C80 X9C80 X9C80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H70 XENCODING 112 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9180 X8C80 X9C80 X9C80 X9C80 X8C80 X9180 X9F80 X9F80 X9F80 X9F80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H71 XENCODING 113 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC480 X9880 X9C80 X9C80 X9C80 X9880 XC480 XFC80 XFC80 XFC80 XFC80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H72 XENCODING 114 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9180 X8480 X9F80 X9F80 X9F80 X9F80 X9F80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H73 XENCODING 115 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XC180 X9C80 X9F80 XC180 XFC80 X9C80 XC180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H74 XENCODING 116 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XE780 XE780 XE780 X8180 XE780 XE780 XE780 XE780 XE480 XF180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H75 XENCODING 117 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9C80 X9C80 X9C80 X9C80 X9C80 X9880 XC480 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H76 XENCODING 118 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9C80 X9C80 XC980 XC980 XE380 XE380 XF780 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H77 XENCODING 119 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X3C80 X3C80 X2480 X2480 X2480 X2480 X8180 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H78 XENCODING 120 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9980 X9980 XC380 XE780 XC380 X9980 X9980 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H79 XENCODING 121 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X9C80 X9C80 XCC80 XC980 XE980 XE380 XF380 XF380 XB780 X8780 XCF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H7a XENCODING 122 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X8080 XF980 XF380 XE780 XCF80 X9F80 X8080 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H7b XENCODING 123 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XF080 XE780 XE780 XE780 XE780 XE780 X8F80 XE780 XE780 XE780 XE780 XE780 XF080 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H7c XENCODING 124 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XE780 XE780 XE780 XE780 XE780 XE780 XFF80 XE780 XE780 XE780 XE780 XE780 XE780 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H7d XENCODING 125 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 X8780 XF380 XF380 XF380 XF380 XF380 XF880 XF380 XF380 XF380 XF380 XF380 X8780 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XSTARTCHAR H7e XENCODING 126 XSWIDTH 562 0 XDWIDTH 9 0 XBBX 9 22 0 -7 XBITMAP XFF80 X0000 XFF80 XFF80 XFF80 XFF80 XC480 X8080 X9180 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 XFF80 X0000 XFF80 XENDCHAR XENDFONT END_OF_FILE if test 18705 -ne `wc -c <'fonts/push-rev.bdf'`; then echo shar: \"'fonts/push-rev.bdf'\" unpacked with wrong size! fi # end of 'fonts/push-rev.bdf' fi if test -f 'master/colormapDb.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'master/colormapDb.c'\" else echo shar: Extracting \"'master/colormapDb.c'\" \(16870 characters\) sed "s/^X//" >'master/colormapDb.c' <<'END_OF_FILE' X/* X * Copyright (c) Ken W. Marks 1989, 1990. X */ X X#include <stdio.h> X#include <signal.h> X#include <ctype.h> X#include <X11/Intrinsic.h> X#include <X11/StringDefs.h> X#include <X11/Xaw/Form.h> X#include <Chaos.h> X#include <LocalDefs.h> X#include <Colormap.h> X#include <DlgShell.h> X#include <Push.h> X#include <Compound.h> X#include <Text.h> X#include <List.h> X#include <Slider.h> X#include <Palette.h> X#include <Label.h> X X#define PALETTE widgets[1] X#define SLIDER_1_LABEL widgets[11] X#define SLIDER_1 widgets[2] X#define SLIDER_2_LABEL widgets[12] X#define SLIDER_2 widgets[3] X#define SLIDER_3_LABEL widgets[13] X#define SLIDER_3 widgets[4] X X#define RGB_HSB widgets[7] X#define COLORMAP_LOAD widgets[8] X#define COLORMAP_SAVE widgets[9] X#define COLORMAP_REMOVE widgets[10] X#define DISMISS widgets[0] X X#define COLORMAP_LABEL widgets[14] X#define COLORMAP_TEXT widgets[5] X#define COLORMAP_LIST widgets[6] X X#define NUM_CONTROLS (unsigned) 11 X#define NUM_LABELS (unsigned) 4 X Xstatic void ColormapPaletteActivate(); Xstatic void ColormapPushActivate(); Xstatic void ColormapSliderActivate(); Xstatic void ColormapListActivate(); Xstatic void ColormapChangeMode(); Xstatic void ColormapLoadColormap(); Xstatic void ColormapSaveColormap(); Xstatic void ColormapRemoveColormap(); X Xvoid ColormapUpdateSliders(); Xvoid ColormapUpdateFileList(); Xvoid SaveColormapProceed(); Xvoid RemoveColormapProceed(); Xvoid ColormapResetControls(); X Xextern void ConfirmSetup(); Xextern void MessageSetup(); X Xextern Widget confirm_dialogbox; Xextern Widget message_dialogbox; X Xstatic int curr_color = NUM_RESERVED; Xstatic unsigned char curr_red, curr_green, curr_blue; Xstatic unsigned char curr_hue, curr_sat, curr_bright; Xstatic Boolean hsb_mode = False; X Xstatic Widget form, widgets[NUM_CONTROLS + NUM_LABELS]; X Xstatic char colormap_buffer[64]; Xstatic ListItem *colormap_list_items; X Xstatic char *save_colormap_msg = X"The file '%s/%s' already exists!\n\ XDo you really wish to overwrite this colormap file?"; X Xstatic char *save_failed_msg = X"Cannot write to file '%s/%s'!"; X Xstatic char *load_colormap_msg = X"Cannot load file '%s/%s'!\n\ XPlease specify a valid colormap filename."; X Xstatic char *remove_colormap_msg = X"The file '%s/%s' will be lost!\n\ XDo you really wish to remove this colormap file?"; X Xstatic char *remove_failed_msg = X"Cannot remove file '%s/%s'!"; X Xstatic XtCallbackRec palette_callbacks[] = { X {ColormapPaletteActivate, NULL}, X {NULL, NULL}, X}; X Xstatic XtCallbackRec push_callbacks[] = { X {ColormapPushActivate, NULL}, X {NULL, NULL}, X}; X Xstatic XtCallbackRec slider_callbacks[] = { X {ColormapSliderActivate, NULL}, X {NULL, NULL}, X}; X Xstatic XtCallbackRec list_callbacks[] = { X {ColormapListActivate, NULL}, X {NULL, NULL}, X}; X Xstatic Arg PopupArgs[] = { X {XtNborderWidth, (XtArgVal) 3}, X}; X Xstatic Arg LabelArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNlabel, (XtArgVal) NULL}, X {XtNresizable, (XtArgVal) False}, X {XtNborderWidth, (XtArgVal) 0}, X}; X Xstatic Arg PushArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNlabel, (XtArgVal) NULL}, X {XtNdialogbox, (XtArgVal) NULL}, X {XtNcallback, (XtArgVal) push_callbacks}, X {XtNresizable, (XtArgVal) False}, X}; X Xstatic Arg PaletteArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNcellSize, (XtArgVal) 16}, X {XtNdialogbox, (XtArgVal) NULL}, X {XtNcallback, (XtArgVal) palette_callbacks}, X {XtNresizable, (XtArgVal) False}, X}; X Xstatic Arg ListArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNlistItems, (XtArgVal) NULL}, X {XtNdialogbox, (XtArgVal) NULL}, X {XtNresizable, (XtArgVal) False}, X {XtNborderWidth, (XtArgVal) 1}, X {XtNcallback, (XtArgVal) list_callbacks}, X {XtNlistDefault, (XtArgVal) NULL}, X {XtNcharsWide, (XtArgVal) 31}, X {XtNnumberVisible, (XtArgVal) 8}, X {XtNlistDefault, (XtArgVal) - 1}, X}; X Xstatic Arg SliderArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNdialogbox, (XtArgVal) NULL}, X {XtNcallback, (XtArgVal) slider_callbacks}, X {XtNresizable, (XtArgVal) False}, X {XtNminValue, (XtArgVal) 0}, X {XtNmaxValue, (XtArgVal) 255}, X}; X Xstatic Arg TextArgs[] = { X {XtNfromHoriz, (XtArgVal) NULL}, X {XtNfromVert, (XtArgVal) NULL}, X {XtNhorizDistance, (XtArgVal) 10}, X {XtNvertDistance, (XtArgVal) 10}, X {XtNbuffer, (XtArgVal) NULL}, X {XtNdialogbox, (XtArgVal) NULL}, X {XtNresizable, (XtArgVal) False}, X {XtNbufferLen, (XtArgVal) NULL}, X {XtNinitialText, (XtArgVal) NULL}, X {XtNcharsWide, (XtArgVal) NULL}, X}; X X X/*ARGSUSED*/ Xstatic void ColormapPushActivate(widget, client_data, call_data) XWidget widget; Xcaddr_t client_data; Xcaddr_t call_data; X{ X Display *dpy = XtDisplay(widget); X extern Widget colormap_dialogbox; X extern Boolean rotating, rotating_save; X extern int colormap_alignment; X extern Colormap colormap; X extern char *FileCheckFilename(); X char *new_filename; X X if (widget == DISMISS) X { X DialogPopdown(colormap_dialogbox); X rotating = rotating_save; X AlignColormap(dpy, colormap, colormap_alignment); X } X else if (widget == RGB_HSB) X ColormapChangeMode(); X else X { X new_filename = FileCheckFilename(colormap_buffer, ".map"); X TextChangeText(COLORMAP_TEXT, new_filename); X if (new_filename == NULL) X return; X X if (widget == COLORMAP_LOAD) X ColormapLoadColormap(); X else if (widget == COLORMAP_SAVE) X ColormapSaveColormap(); X else if (widget == COLORMAP_REMOVE) X ColormapRemoveColormap(); X } X} X X X/*ARGSUSED*/ Xstatic void ColormapPaletteActivate(widget, client_data, call_data) XWidget widget; /* unused */ Xcaddr_t client_data; /* unused */ Xcaddr_t call_data; X{ X X curr_color = (int) call_data; X ColormapUpdateSliders(); X} X X X/*ARGSUSED*/ Xstatic void ColormapSliderActivate(widget, client_data, call_data) XWidget widget; Xcaddr_t client_data; Xcaddr_t call_data; X{ X Display *dpy = XtDisplay(widget); X extern Colormap colormap; X X if (hsb_mode) X { X double r, g, b; X X if (widget == SLIDER_1) X curr_hue = (unsigned char) call_data; X else if (widget == SLIDER_2) X curr_sat = (unsigned char) call_data; X else if (widget == SLIDER_3) X curr_bright = (unsigned char) call_data; X X HSB2RGB((double) curr_hue / 255.0, (double) curr_sat / 255.0, X (double) curr_bright / 255.0, &r, &g, &b); X X curr_red = (unsigned char) (r * 255.0); X curr_green = (unsigned char) (g * 255.0); X curr_blue = (unsigned char) (b * 255.0); X } X else X { X double h, s, b; X X if (widget == SLIDER_1) X curr_red = (unsigned char) call_data; X else if (widget == SLIDER_2) X curr_green = (unsigned char) call_data; X else if (widget == SLIDER_3) X curr_blue = (unsigned char) call_data; X X RGB2HSB((double) curr_red / 255.0, (double) curr_green / 255.0, X (double) curr_blue / 255.0, &h, &s, &b); X X curr_hue = (unsigned char) (h * 255.0); X curr_sat = (unsigned char) (s * 255.0); X curr_bright = (unsigned char) (b * 255.0); X } X X SetColorRGB(dpy, colormap, curr_color, curr_red, curr_green, curr_blue); X} X X X/*ARGSUSED*/ Xstatic void ColormapListActivate(widget, client_data, call_data) XWidget widget; Xcaddr_t client_data; Xcaddr_t call_data; X{ X int item = (int) call_data; X X TextChangeText(COLORMAP_TEXT, colormap_list_items[item].label); X} X X Xstatic void ColormapChangeMode() X{ X hsb_mode = !hsb_mode; X X if (hsb_mode) X { X LabelChangeLabel(SLIDER_1_LABEL, " Hue:"); X LabelChangeLabel(SLIDER_2_LABEL, "Saturation:"); X LabelChangeLabel(SLIDER_3_LABEL, "Brightness:"); X PushChangeLabel(RGB_HSB, "RGB"); X X SliderChangePosition(SLIDER_1, (int) curr_hue); X SliderChangePosition(SLIDER_2, (int) curr_sat); X SliderChangePosition(SLIDER_3, (int) curr_bright); X } X else X { X LabelChangeLabel(SLIDER_1_LABEL, " Red:"); X LabelChangeLabel(SLIDER_2_LABEL, " Green:"); X LabelChangeLabel(SLIDER_3_LABEL, " Blue:"); X PushChangeLabel(RGB_HSB, "HSB"); X X SliderChangePosition(SLIDER_1, (int) curr_red); X SliderChangePosition(SLIDER_2, (int) curr_green); X SliderChangePosition(SLIDER_3, (int) curr_blue); X } X} X X Xstatic void ColormapLoadColormap() X{ X extern char *map_dir; X extern void CallStoreColormap(); X char message[256]; X X if (ReadColors(map_dir, colormap_buffer) == False) X { X /* Popup an error message box here */ X (void) sprintf(message, load_colormap_msg, map_dir, colormap_buffer); X MessageSetup(message, (XtCallbackProc) NULL); X DialogPopup(message_dialogbox); X return; X } X CallStoreColormap(); X X /* update the sliders since the colormap changed */ X ColormapUpdateSliders(); X} X X Xstatic void ColormapSaveColormap() X{ X extern char *map_dir; X extern Boolean FileExists(); X char message[256]; X X if (FileExists(map_dir, colormap_buffer)) X { X /* throw a dialogbox up for confirmation first */ X (void) sprintf(message, save_colormap_msg, map_dir, colormap_buffer); X ConfirmSetup(message, SaveColormapProceed); X DialogPopup(confirm_dialogbox); X } X else X SaveColormapProceed((Widget) NULL, (caddr_t) NULL, (caddr_t) NULL); X} X X X/*ARGSUSED*/ Xvoid SaveColormapProceed(widget, client_data, call_data) XWidget widget; /* unused */ Xcaddr_t client_data; /* unused */ Xcaddr_t call_data; /* unused */ X{ X extern char *map_dir; X char message[256]; X X if (WriteColors(map_dir, colormap_buffer) == False) X { X /* Popup an error message box here */ X (void) sprintf(message, save_failed_msg, map_dir, colormap_buffer); X MessageSetup(message, (XtCallbackProc) NULL); X DialogPopup(message_dialogbox); X return; X } X ColormapUpdateFileList(); X} X X Xstatic void ColormapRemoveColormap() X{ X extern char *map_dir; X char message[256]; X X /* throw a dialogbox up for confirmation first */ X (void) sprintf(message, remove_colormap_msg, map_dir, colormap_buffer); X ConfirmSetup(message, RemoveColormapProceed); X DialogPopup(confirm_dialogbox); X} X X X/*ARGSUSED*/ Xvoid RemoveColormapProceed(widget, client_data, call_data) XWidget widget; /* unused */ Xcaddr_t client_data; /* unused */ Xcaddr_t call_data; /* unused */ X{ X extern char *map_dir; X Boolean RemoveFile(); X char message[256]; X X if (RemoveFile(map_dir, colormap_buffer) == False) X { X /* Popup an error message box here */ X (void) sprintf(message, remove_failed_msg, map_dir, colormap_buffer); X MessageSetup(message, (XtCallbackProc) NULL); X DialogPopup(message_dialogbox); X return; X } X TextChangeText(COLORMAP_TEXT, (String) NULL); X ColormapUpdateFileList(); X} X X Xvoid ColormapUpdateFileList() X{ X extern char **GetFileList(); X extern void FreeFileList(); X extern char *map_dir; X X if (colormap_list_items) X FreeFileList((char **) colormap_list_items); X X colormap_list_items = (ListItem *) GetFileList(map_dir, "*.map"); X if (colormap_list_items != NULL) X (void) ListChangeItems(COLORMAP_LIST, colormap_list_items); X} X X Xvoid ColormapUpdateSliders() X{ X double h, s, b; X X GetColorRGB(curr_color, &curr_red, &curr_green, &curr_blue); X X RGB2HSB((double) curr_red / 255.0, (double) curr_green / 255.0, X (double) curr_blue / 255.0, &h, &s, &b); X X curr_hue = (unsigned char) (h * 255.0); X curr_sat = (unsigned char) (s * 255.0); X curr_bright = (unsigned char) (b * 255.0); X X if (hsb_mode) X { X SliderChangePosition(SLIDER_1, (int) curr_hue); X SliderChangePosition(SLIDER_2, (int) curr_sat); X SliderChangePosition(SLIDER_3, (int) curr_bright); X } X else X { X SliderChangePosition(SLIDER_1, (int) curr_red); X SliderChangePosition(SLIDER_2, (int) curr_green); X SliderChangePosition(SLIDER_3, (int) curr_blue); X } X} X X Xvoid ColormapResetControls() X{ X TextChangeText(COLORMAP_TEXT, (String) NULL); X ListChangeSelected(COLORMAP_LIST, NO_ITEM); X} X X XWidget ColormapCreateDialogbox(parent) XWidget parent; X{ X Widget popup; X X popup = XtCreatePopupShell("colormap_dialogbox_popup", X dialogShellWidgetClass, parent, PopupArgs, XtNumber(PopupArgs)); X X form = XtCreateManagedWidget("colormap_dialogbox_form", formWidgetClass, X popup, (ArgList) NULL, (Cardinal) 0); X X PaletteArgs[0].value = (XtArgVal) NULL; X PaletteArgs[1].value = (XtArgVal) NULL; X PaletteArgs[5].value = (XtArgVal) popup; X PALETTE = XtCreateManagedWidget("palette", paletteWidgetClass, X form, PaletteArgs, XtNumber(PaletteArgs)); X X LabelArgs[0].value = (XtArgVal) PALETTE; X LabelArgs[1].value = (XtArgVal) NULL; X LabelArgs[4].value = (XtArgVal) " Red:"; X SLIDER_1_LABEL = XtCreateManagedWidget("slider_1_label", labelWidgetClass, X form, LabelArgs, XtNumber(LabelArgs)); X X SliderArgs[0].value = (XtArgVal) SLIDER_1_LABEL; X SliderArgs[1].value = (XtArgVal) NULL; X SliderArgs[4].value = (XtArgVal) popup; X SLIDER_1 = XtCreateManagedWidget("slider_1", sliderWidgetClass, X form, SliderArgs, XtNumber(SliderArgs)); X X LabelArgs[0].value = (XtArgVal) PALETTE; X LabelArgs[1].value = (XtArgVal) SLIDER_1; X LabelArgs[4].value = (XtArgVal) " Green:"; X SLIDER_2_LABEL = XtCreateManagedWidget("slider_2_label", labelWidgetClass, X form, LabelArgs, XtNumber(LabelArgs)); X X SliderArgs[0].value = (XtArgVal) SLIDER_2_LABEL; X SliderArgs[1].value = (XtArgVal) SLIDER_1; X SliderArgs[4].value = (XtArgVal) popup; X SLIDER_2 = XtCreateManagedWidget("slider_2", sliderWidgetClass, X form, SliderArgs, XtNumber(SliderArgs)); X X LabelArgs[0].value = (XtArgVal) PALETTE; X LabelArgs[1].value = (XtArgVal) SLIDER_2; X LabelArgs[4].value = (XtArgVal) " Blue:"; X SLIDER_3_LABEL = XtCreateManagedWidget("slider_3_label", labelWidgetClass, X form, LabelArgs, XtNumber(LabelArgs)); X X SliderArgs[0].value = (XtArgVal) SLIDER_3_LABEL; X SliderArgs[1].value = (XtArgVal) SLIDER_2; X SliderArgs[4].value = (XtArgVal) popup; X SLIDER_3 = XtCreateManagedWidget("slider_3", sliderWidgetClass, X form, SliderArgs, XtNumber(SliderArgs)); X X LabelArgs[0].value = (XtArgVal) PALETTE; X LabelArgs[1].value = (XtArgVal) SLIDER_3; X LabelArgs[4].value = (XtArgVal) "Colormap:"; X COLORMAP_LABEL = XtCreateManagedWidget("colormap_label", labelWidgetClass, X form, LabelArgs, XtNumber(LabelArgs)); X X TextArgs[0].value = (XtArgVal) COLORMAP_LABEL; X TextArgs[1].value = (XtArgVal) SLIDER_3; X TextArgs[4].value = (XtArgVal) colormap_buffer; X TextArgs[5].value = (XtArgVal) popup; X TextArgs[7].value = (XtArgVal) 64; X TextArgs[9].value = (XtArgVal) 16; X COLORMAP_TEXT = XtCreateManagedWidget("colormap_text", textWidgetClass, X form, TextArgs, XtNumber(TextArgs)); X X ListArgs[0].value = (XtArgVal) PALETTE; X ListArgs[1].value = (XtArgVal) COLORMAP_LABEL; X ListArgs[5].value = (XtArgVal) popup; X COLORMAP_LIST = XtCreateManagedWidget("colormap_list", listWidgetClass, X form, ListArgs, XtNumber(ListArgs)); X X PushArgs[0].value = (XtArgVal) COLORMAP_LIST; X PushArgs[1].value = (XtArgVal) COLORMAP_LABEL; X PushArgs[4].value = (XtArgVal) "HSB"; X PushArgs[5].value = (XtArgVal) popup; X RGB_HSB = XtCreateManagedWidget("rgb_hsb_push", pushWidgetClass, X form, PushArgs, XtNumber(PushArgs)); X X PushArgs[0].value = (XtArgVal) COLORMAP_LIST; X PushArgs[1].value = (XtArgVal) RGB_HSB; X PushArgs[4].value = (XtArgVal) "Load Colormap"; X PushArgs[5].value = (XtArgVal) popup; X COLORMAP_LOAD = XtCreateManagedWidget("load_colormap_push", pushWidgetClass, X form, PushArgs, XtNumber(PushArgs)); X X PushArgs[0].value = (XtArgVal) COLORMAP_LIST; X PushArgs[1].value = (XtArgVal) COLORMAP_LOAD; X PushArgs[4].value = (XtArgVal) "Save Colormap"; X PushArgs[5].value = (XtArgVal) popup; X COLORMAP_SAVE = XtCreateManagedWidget("save_colormap_push", pushWidgetClass, X form, PushArgs, XtNumber(PushArgs)); X X PushArgs[0].value = (XtArgVal) COLORMAP_LIST; X PushArgs[1].value = (XtArgVal) COLORMAP_SAVE; X PushArgs[4].value = (XtArgVal) "Remove Colormap"; X PushArgs[5].value = (XtArgVal) popup; X COLORMAP_REMOVE = XtCreateManagedWidget("remove_colormap_push", X pushWidgetClass, form, PushArgs, XtNumber(PushArgs)); X X PushArgs[0].value = (XtArgVal) COLORMAP_LIST; X PushArgs[1].value = (XtArgVal) COLORMAP_REMOVE; X PushArgs[4].value = (XtArgVal) "Dismiss"; X PushArgs[5].value = (XtArgVal) popup; X DISMISS = XtCreateManagedWidget("dismiss_push", pushWidgetClass, X form, PushArgs, XtNumber(PushArgs)); X X DialogSetFocusOrder(popup, widgets, NUM_CONTROLS); X X return (popup); X} END_OF_FILE if test 16870 -ne `wc -c <'master/colormapDb.c'`; then echo shar: \"'master/colormapDb.c'\" unpacked with wrong size! fi # end of 'master/colormapDb.c' fi if test -f 'widgets/Compound.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'widgets/Compound.c'\" else echo shar: Extracting \"'widgets/Compound.c'\" \(15878 characters\) sed "s/^X//" >'widgets/Compound.c' <<'END_OF_FILE' X/* X * Copyright (c) Ken W. Marks 1989, 1990. X */ X X#include <stdio.h> X#include <X11/IntrinsicP.h> X#include <X11/StringDefs.h> X#include <Chaos.h> X#include <LocalDefs.h> X#include <CompoundP.h> X#include <Colormap.h> X#include <DlgShell.h> X X#define GET_ITEM(w, x, y) (((x) < (w)->compound.hot_min || \ X (x) > (w)->compound.hot_max || \ X (y) < 0 || (y) >= (w)->core.height) ? \ X NO_ITEM : (y) / (w)->compound.item_height) X X/* internal padding for items in compound buttons */ X#define VERTICAL_PAD 2 X#define HORIZONTAL_PAD 2 X X#define TOGGLE_UNSET_STRING "\026\027" X#define TOGGLE_SET_STRING "\030\031" X#define RADIO_UNSET_STRING "\032\033" X#define RADIO_SET_STRING "\034\035" X X#define ARROW '\037' X#define BLANK '\036' X Xstatic void CompoundInitialize(); Xstatic void CompoundRedisplay(); Xstatic void CompoundDestroy(); Xstatic void CompoundDrawItem(); Xstatic void CompoundNotify(); Xstatic void CompoundMark(); Xstatic void CompoundGoto(); Xstatic void CompoundFocusIn(); Xstatic void CompoundFocusOut(); X X#define offset(field) XtOffset(CompoundWidget, compound.field) X#define goffset(field) XtOffset(Widget,core.field) X Xstatic XtResource compound_resources[] = { X {XtNbuttonType, XtCButtonType, XtRInt, sizeof(int), X offset(button_type), XtRImmediate, (caddr_t) UndefinedButton}, X {XtNradioDefault, XtCDefault, XtRInt, sizeof(int), X offset(selected_item), XtRImmediate, (caddr_t) 0}, X {XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel), X offset(foreground), XtRString, "Black"}, X {XtNbackground, XtCBackground, XtRPixel, sizeof(Pixel), X goffset(background_pixel), XtRString, "White"}, X {XtNfont, XtCFont, XtRFontStruct, sizeof(XFontStruct *), X offset(font), XtRString, "chaos-bold"}, X {XtNtoggleItems, XtCList, XtRPointer, sizeof(char **), X offset(toggle_items), XtRString, NULL}, X {XtNradioItems, XtCList, XtRPointer, sizeof(char **), X offset(radio_items), XtRString, NULL}, X {XtNhorizPad, XtCMargin, XtRDimension, sizeof(Dimension), X offset(h_pad), XtRImmediate, (caddr_t) HORIZONTAL_PAD}, X {XtNvertPad, XtCMargin, XtRDimension, sizeof(Dimension), X offset(v_pad), XtRImmediate, (caddr_t) VERTICAL_PAD}, X {XtNcallback, XtCCallback, XtRCallback, sizeof(caddr_t), X offset(callbacks), XtRCallback, (caddr_t) NULL}, X {XtNdialogbox, XtCWidget, XtRWidget, sizeof(Widget), X offset(dialogbox), XtRWidget, (caddr_t) NULL}, X}; X Xstatic XtActionsRec compound_actions[] = X{ X {"notify", CompoundNotify}, X {"mark", CompoundMark}, X {"goto", CompoundGoto}, X {"focus_in", CompoundFocusIn}, X {"focus_out", CompoundFocusOut}, X}; X Xstatic char compound_translations[] = X"<BtnDown>: mark(BUTTON) notify(BUTTON)\n\ X <Key>Return: notify(KEY)\n\ X <Key>Up: mark(PREV)\n\ X <Key>Down: mark(NEXT)\n\ X Shift<Key>Tab: goto(PREV)\n\ X <Key>Tab: goto(NEXT)\n\ X <FocusIn>: focus_in()\n\ X <FocusOut>: focus_out()\n\ X"; X X#define superclass (&simpleClassRec) X XCompoundClassRec compoundClassRec = { X { X /* core fields */ X /* superclass */ (WidgetClass) superclass, X /* class_name */ "Compound", X /* widget_size */ sizeof(CompoundRec), X /* class_initialize */ NULL, X /* class_part_initialize */ NULL, X /* class_inited */ FALSE, X /* initialize */ CompoundInitialize, X /* initialize_hook */ NULL, X /* realize */ XtInheritRealize, X /* actions */ compound_actions, X /* num_actions */ XtNumber(compound_actions), X /* resources */ compound_resources, X /* resource_count */ XtNumber(compound_resources), X /* xrm_class */ NULLQUARK, X /* compress_motion */ TRUE, X /* compress_exposure */ TRUE, X /* compress_enterleave */ TRUE, X /* visible_interest */ FALSE, X /* destroy */ CompoundDestroy, X /* resize */ NULL, X /* expose */ CompoundRedisplay, X /* set_values */ NULL, X /* set_values_hook */ NULL, X /* set_values_almost */ XtInheritSetValuesAlmost, X /* get_values_hook */ NULL, X /* accept_focus */ NULL, X /* version */ XtVersion, X /* callback_private */ NULL, X /* tm_table */ compound_translations, X /* query_geometry */ NULL, X /* display_accelerator */ XtInheritDisplayAccelerator, X /* extension */ NULL X }, X { X /* Simple class fields initialization */ X /* change_sensitive */ XtInheritChangeSensitive X } X}; X X XWidgetClass compoundWidgetClass = (WidgetClass) & compoundClassRec; X X X/************************************************************/ X/******************** Private Procedures ********************/ X/************************************************************/ X X Xstatic void CompoundGetGC(w) XCompoundWidget w; X{ X XGCValues values; X X values.foreground = w->compound.foreground; X values.background = w->core.background_pixel; X values.font = w->compound.font->fid; X X w->compound.normal_gc = XtGetGC((Widget) w, (unsigned) GCForeground | X GCBackground | GCFont, &values); X} X X Xstatic void CompoundSetSize(w) XCompoundWidget w; X{ X XtWidgetGeometry my_request; X XFontStruct *fs = w->compound.font; X ToggleItem *toggle_item; X RadioItem *radio_item; X Cardinal height = fs->max_bounds.ascent + fs->max_bounds.descent; X Cardinal width = fs->max_bounds.width; X Cardinal label_width; X Cardinal max_width = 0; X char *label; X int ii = 0; X X if (w->compound.button_type == ToggleButton) X { X toggle_item = w->compound.toggle_items; X while (1) X { X label = toggle_item->label; X if (label == NULL) X break; X label_width = width * STRLEN(label); X max_width = MAX(max_width, label_width); X ++ii; X ++toggle_item; X } X } X else X { X radio_item = w->compound.radio_items; X while (1) X { X label = radio_item->label; X if (label == NULL) X break; X label_width = width * STRLEN(label); X max_width = MAX(max_width, label_width); X ++ii; X ++radio_item; X } X } X X w->compound.num_items = ii; X w->compound.item_width = max_width; X X /* Hot region is the 2nd and 3rd characters */ X w->compound.hot_min = w->compound.h_pad + width; X w->compound.hot_max = w->compound.h_pad + width * 3; X X w->compound.item_height = height + 2 * w->compound.v_pad; X X my_request.request_mode = CWWidth | CWHeight; X my_request.width = w->compound.item_width + 2 * w->compound.h_pad; X my_request.height = w->compound.item_height * w->compound.num_items; X X XtMakeGeometryRequest((Widget) w, &my_request, NULL); X} X X X/*ARGSUSED*/ Xstatic void CompoundInitialize(request, new) XWidget request; /* unused */ XWidget new; X{ X CompoundWidget w = (CompoundWidget) new; X char *label; X int ii; X X if (w->compound.dialogbox == NULL) X { X eprintf("XtNdialogbox not set\n"); X abort(); X } X X CompoundGetGC(w); X X if (w->compound.button_type == ToggleButton) X { X /* SUPPRESS 530 */ X for (ii = 0; w->compound.toggle_items[ii].label != NULL; ++ii); X X /* Allocate a private copy of the compound structure so that it X * doesn't change from under us. */ X X w->compound.toggle_items = (ToggleItem *) X COPY(w->compound.toggle_items, (ii + 1) * sizeof(ToggleItem)); X X /* And don't forget to make private copies of all the labels in the X * structures (with space for 3 special leading chars). */ X X while (--ii >= 0) X { X label = w->compound.toggle_items[ii].label; X w->compound.toggle_items[ii].label = X malloc((unsigned) strlen(label) + 4); X (void) memset(w->compound.toggle_items[ii].label, BLANK, 3); X (void) strcpy(&(w->compound.toggle_items[ii].label[3]), label); X } X } X else if (w->compound.button_type == RadioButton) X { X /* SUPPRESS 530 */ X for (ii = 0; w->compound.radio_items[ii].label != NULL; ++ii); X X /* Allocate a private copy of the compound structure so that it X * doesn't change from under us. */ X X w->compound.radio_items = (RadioItem *) COPY(w->compound.radio_items, X (ii + 1) * sizeof(RadioItem)); X X /* And don't forget to make private copies of all the labels in the X * structures (with space for 3 special leading chars). */ X X while (--ii >= 0) X { X label = w->compound.radio_items[ii].label; X w->compound.radio_items[ii].label = X malloc((unsigned) strlen(label) + 4); X (void) memset(w->compound.radio_items[ii].label, BLANK, 3); X (void) strcpy(&(w->compound.radio_items[ii].label[3]), label); X } X } X else X { X eprintf("Invalid button type\n"); X abort(); X } X X w->compound.active_item = NO_ITEM; X X CompoundSetSize(w); X} X X X/*ARGSUSED*/ Xstatic void CompoundRedisplay(widget, event, region) XWidget widget; XXEvent *event; XRegion region; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X int ii; X X if (XtIsRealized(widget) == False) X return; X X for (ii = 0; ii < w->compound.num_items; ++ii) X CompoundDrawItem(widget, ii); X} X X Xstatic void CompoundDestroy(widget) XWidget widget; X{ X CompoundWidget w = (CompoundWidget) widget; X X XtReleaseGC(widget, w->compound.normal_gc); X} X X Xstatic void CompoundDrawItem(widget, item) XWidget widget; Xint item; X{ X CompoundWidget w = (CompoundWidget) widget; X Display *dpy = XtDisplay(w); X Window window = XtWindow(w); X ToggleItem *toggle_item; X RadioItem *radio_item; X char *label; X int x, y; X X if (item == NO_ITEM) X return; X X if (w->compound.button_type == ToggleButton) X { X toggle_item = &(w->compound.toggle_items[item]); X label = toggle_item->label; X X if (toggle_item->state == True) X (void) memcpy(&label[1], TOGGLE_SET_STRING, 2); X else X (void) memcpy(&label[1], TOGGLE_UNSET_STRING, 2); X } X else X { X radio_item = &(w->compound.radio_items[item]); X label = radio_item->label; X if (item == w->compound.selected_item) X (void) memcpy(&label[1], RADIO_SET_STRING, 2); X else X (void) memcpy(&label[1], RADIO_UNSET_STRING, 2); X } X X if (item == w->compound.active_item) X label[0] = ARROW; X else X label[0] = BLANK; X X x = w->compound.h_pad; X y = w->compound.item_height * item + w->compound.v_pad + X w->compound.font->max_bounds.ascent; X X if (XtIsRealized(widget)) X XDrawImageString(dpy, window, w->compound.normal_gc, x, y, label, X STRLEN(label)); X} X X X/***********************************************************/ X/******************** Action Procedures ********************/ X/***********************************************************/ X X X/*ARGSUSED*/ Xstatic void CompoundFocusIn(widget, event, params, num_params) XWidget widget; XXEvent *event; XString *params; XCardinal *num_params; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X X if (w->compound.active_item == NO_ITEM) X w->compound.active_item = 0; X X CompoundDrawItem(widget, w->compound.active_item); X} X X X/*ARGSUSED*/ Xstatic void CompoundFocusOut(widget, event, params, num_params) XWidget widget; XXEvent *event; XString *params; XCardinal *num_params; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X int last_active_item = w->compound.active_item; X X if (w->compound.active_item != NO_ITEM) X { X w->compound.active_item = NO_ITEM; X CompoundDrawItem(widget, last_active_item); X } X} X X X/*ARGSUSED*/ Xstatic void CompoundNotify(widget, event, params, num_params) XWidget widget; XXEvent *event; XString *params; XCardinal *num_params; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X XButtonEvent *ev = (XButtonEvent *) & event->xbutton; X ToggleItem *toggle_item; X int item; X int last_selected_item; X X if (params[0][0] == 'B') X item = GET_ITEM(w, ev->x, ev->y); X else X item = w->compound.active_item; X X if (item == NO_ITEM) X return; X X if (w->compound.button_type == ToggleButton) X { X toggle_item = &(w->compound.toggle_items[item]); X toggle_item->state = !toggle_item->state; X } X else X { X last_selected_item = w->compound.selected_item; X w->compound.selected_item = item; X CompoundDrawItem(widget, last_selected_item); X } X X CompoundDrawItem(widget, item); X X XtCallCallbacks(widget, XtNcallback, (XtPointer) item); X} X X X/*ARGSUSED*/ Xstatic void CompoundMark(widget, event, params, num_params) XWidget widget; XXEvent *event; XString *params; /* unused */ XCardinal *num_params; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X XButtonEvent *ev = (XButtonEvent *) & event->xbutton; X int item; X int last_item = w->compound.active_item; X X switch (params[0][0]) X { X case 'B': X item = GET_ITEM(w, ev->x, ev->y); X if (item == NO_ITEM) X return; X DialogSetNewFocus(w->compound.dialogbox, widget); X break; X X case 'P': X item = w->compound.active_item - 1; X if (item < 0) X item = 0; X break; X X case 'N': X item = w->compound.active_item + 1; X if (item >= w->compound.num_items) X item = w->compound.num_items - 1; X break; X } X X w->compound.active_item = item; X X CompoundDrawItem(widget, last_item); X CompoundDrawItem(widget, item); X} X X X/*ARGSUSED*/ Xstatic void CompoundGoto(widget, event, params, num_params) XWidget widget; XXEvent *event; /* unused */ XString *params; /* unused */ XCardinal *num_params; /* unused */ X{ X CompoundWidget w = (CompoundWidget) widget; X int item = w->compound.active_item; X X w->compound.active_item = NO_ITEM; X CompoundDrawItem(widget, item); X X switch (params[0][0]) X { X case 'P': X DialogSetPrevFocus(w->compound.dialogbox); X break; X X case 'N': X DialogSetNextFocus(w->compound.dialogbox); X break; X } X} X X X/***********************************************************/ X/******************** Public Procedures ********************/ X/***********************************************************/ X X XBoolean CompoundChangeLabel(widget, item, label) XWidget widget; XCardinal item; XString label; X{ X CompoundWidget w = (CompoundWidget) widget; X ToggleItem *toggle_item; X RadioItem *radio_item; X X if (item >= w->compound.num_items || label == NULL) X return (False); X X if (w->compound.button_type == ToggleButton) X { X toggle_item = &(w->compound.toggle_items[item]); X if (strcmp(&(toggle_item->label[3]), label) == SAME) X return (True); X free(toggle_item->label); X toggle_item->label = X malloc((unsigned) strlen(label) + 4); X (void) strcpy(&(toggle_item->label[3]), label); X } X else X { X radio_item = &(w->compound.radio_items[item]); X if (strcmp(&(radio_item->label[3]), label) == SAME) X return (True); X free(radio_item->label); X radio_item->label = X malloc((unsigned) strlen(label) + 4); X (void) strcpy(&(radio_item->label[3]), label); X } X X CompoundDrawItem(widget, (int) item); X return (True); X} X X XBoolean ToggleChangeState(widget, item, state) XWidget widget; XCardinal item; XBoolean state; X{ X CompoundWidget w = (CompoundWidget) widget; X ToggleItem *toggle_item; X X if (item >= w->compound.num_items) X return (False); X X toggle_item = &(w->compound.toggle_items[item]); X X if (toggle_item->state == state) X return (True); X X toggle_item->state = state; X CompoundDrawItem(widget, (int) item); X return (True); X} X X XBoolean ToggleGetState(widget, item) XWidget widget; XCardinal item; X{ X CompoundWidget w = (CompoundWidget) widget; X ToggleItem *toggle_item; X X if (w->compound.button_type != ToggleButton) X { X eprintf("Invalid widget type\n"); X abort(); X } X X if (item >= w->compound.num_items) X { X eprintf("Invalid item: %d\n", item); X abort(); X } X X toggle_item = &(w->compound.toggle_items[item]); X X return (toggle_item->state); X} X X XBoolean RadioChangeSelected(widget, item) XWidget widget; XCardinal item; X{ X CompoundWidget w = (CompoundWidget) widget; X int last_item = w->compound.selected_item; X X if (item >= w->compound.num_items) X return (False); X X w->compound.selected_item = item; X X if (item != last_item) X CompoundDrawItem(widget, last_item); X X CompoundDrawItem(widget, (int) item); X X return (True); X} X X XCardinal RadioGetSelected(widget) XWidget widget; X{ X CompoundWidget w = (CompoundWidget) widget; X X if (w->compound.button_type != RadioButton) X { X eprintf("Invalid widget type\n"); X abort(); X } X return (w->compound.selected_item); X} END_OF_FILE if test 15878 -ne `wc -c <'widgets/Compound.c'`; then echo shar: \"'widgets/Compound.c'\" unpacked with wrong size! fi # end of 'widgets/Compound.c' fi echo shar: End of archive 4 \(of 10\). cp /dev/null ark4isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 10 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 dan ---------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com Opinions expressed reflect those of the author only.