v11i038: wcl - Widget Creation Library, Part26/35
David E. Smyth
david at devvax.Jpl.Nasa.Gov
Sat Feb 9 20:03:28 AEST 1991
Submitted-by: david at devvax.Jpl.Nasa.Gov (David E. Smyth)
Posting-number: Volume 11, Issue 38
Archive-name: wcl/part26
#! /bin/sh
# Make a new directory for the wc sources, cd to it, and run kits 1
# thru 35 through sh. When all 35 kits have been run, read README.
echo "This is wc 1.05 kit 26 (of 35). If kit 26 is complete, the line"
echo '"'"End of kit 26 (of 35)"'" will echo at the end.'
echo ""
export PATH || (echo "You didn't use sh, you clunch." ; kill $$)
mkdir Doc Wc 2>/dev/null
echo Extracting Doc/VG2.PS:AB
sed >Doc/VG2.PS:AB <<'!STUFFY!FUNK!' -e 's/X//'
X04000403B9FFAFEEEBB6BECAAEBB6F6BBAEFFB77775DF8FEBFAFFBDAECFBC31A79=FFB00400041F59#H">$8)J'
X>222A222BE9FFDFC6EC79BF2BB1BB9FE1C39C3FBEFC2EC71FF7763763FFFFFF7FDFFDC71E687FC6EEFBBAE9B9=FEE2222A2235(Z%;#H">$8$9#J'
X08000803B9FFAF1FBFFFFFFFEBFAFFBFBEE6BFFDA0BF9=FFB00800081F(G">#H">"@"J'
X82928293E9FFDFF7FF7FDFFDFB>FEE282928280(G">#H">#<"8"J'
X08000803B9FFAFFBFEBFAFFBBACEEB>FFB008000815(G">#H">-J'
X22222223E9FFDFF7FF7FDFFDC71C7FC61BFF872C71C31B>FEE22222223F(G"`"8#H">"VJ'
X10011003B9FFAFF807FEBFAFFB>FFB11001101F(G">#H">"B"J'
X88A888ABE9FFDFF0FF7FDFFDDF<FEE088A888A8(GR8#H">"B"J'
X00000003B9FFAFFEBFAFFBCF<FFB00000001F(J#H">"B"J'
X22122213E9FFDF:FF7FDFFDC7<FEE222122200(J$y"8">"f#J'
X08440847B9FFAF:FEBFEAAAAFAFFA0183<FFB008440848(J$y"8">"B"J'
XA100A103E9FFDF:FF7FD5554FDFFC81<FEE0A100A100(J$Y"8">X"J'
X0408040BB9FFAF:FEBFEFCFAF80<FFB004080415(j%G"J"J'
X20A220A3E9FFD0907FF7FDFDF67F;FEE220A220A0(J$G"=%>%J'
X0A000A03B9FFA0:FEBFEFAFC7FFE001FC00003F;FFB00A000A1F(J$G"=%>%J'
X8088808BE9FFC0:FF7FDFDFC03F000FFF80001F;FEE08088809E&Z$8%8">">$?$J'
X04000403B9<FEBFEFFDD76377F7AF00007FF8000F;FFB004000408&J$9#8"8"<"=%?$J'
X222A222BE9<FF7FDFD377EFEFDFE00003FFFF0001;FEE2222A223F&J$;"A"?"B#J'
X08000803B9<FEBFEFAFAF1F001F:FFB00800081E&J$9"8&<"?"C"J'
X82928293E9<FF7FDFD5F8C3863743DFFF01:FEE28292829F&J$;'<"=#A"8#J'
X08000803B9<FEBFEFDFF76F75D76FAF8001FE003F9FFB00800081F&J$9&?"<$B%J'
X22222223E9<FF7FDFD677AFF9EFDFFC000301FE00039FEE22222223F&J$<"@"<$B&J'
X10011003B9<FEBFEFFEAFE000073FFFC0007F8FFB11001101F&J$9)<"<$AQJ'
X88A888ABE9<FF7FDFD77777F76D75D66DDF00000F8FEE088A888BF&J$8*<+J'
X00000003B9<FEBFEFFE376377F8F3863973AFFFD555555FF800381FIFFB00000001F&J$8T<+D"w"C'
X22122213E9<FF7FDFDFFFAAAAAA9FE001F83FFAAAAFFEE22212221F(s#z%G+D"w"C'
X08440847B9FFD55557FF/5557FEBFEFAFFFDFFFFF9F000FFC7FF5554FFFB00844085F't#z%G$8&D"W"C'
XA100A103E9FFAAA7FE/AAA7FF7FDFDFFFBF98007FFCFFFBCFFEE0A100A11F(s#z%G$9$E"J'
X0408040BB9FFD55547FF/5547FEBFEFAFFFDF03FFFDF7:FFB00408041F(S$Y%i"8$9$E"J'
X20A220A3E9FFAFC7FEBFC7FF7FD00FDFFFBF1FFFFFFB:FEE220A220BF(?#E$G(G"J'
X0A000A03B9FFDFFF7FFEBFE0AFFFDBE1C798FFF7:FFB00A000A1F(?#E#Z8'H#8#9%D'
X8088808BE9FFAFFEBFFF7F0DFFFBBEEBB9FFB07FDDFE304377FFEE08088809F(?#E#H&I$<$E'
X04000403B9FFDFFF7FFEBFAFFFDBEEBFF7DF7FDD7ED7FFB00400041F(?#E#H$J'9"G'
X222A222BE9FFAFFEBFFF7FDFFFBB5FBDFFFFFFC9FDFFEE2222A223F(?#E#H&I*9"D'
X08000803B9FFDFFF7FFEBFAFFFDBE1C7F7DE72E3FD58D38E3F63FFB00800081F(?#E#H&I.D'
X82928293E9FFAFFEBFFF7FDFFFBBEBFBFBDF755DFD574D75DFE30ED75DFEE28292829F)8#:%8#8#;#H%J"8+D'
X08000803B9FFDF87FE0FFF7FFF87FE0FFE7FFEBFAFFFDBED4F741FDD05F741FFD7ED767FFB00800081F-:)8#;#H&I"8'9"D'
X22222223E9FFAFDBFDFFFFBFFEBFFFDBFDFFFFBFFDBFFF7FDFFFBBEEBBFB5FFDD7DF75FF7BFEE22222223F(?#?";$y"8&I"8"8%8"D'
X10011003B9FFDFFF7FFFFEBFEAAAAFAFFFD82EC7F75D5F85DFDD5DFFB11001101F38,8$y"8'H.D'
X88A888ABE9FFAFDB1871FFBBA1C71FC7FEBF1871FFBA71A71DF1A65C7FFF7FD5554FDFFFBFFFFF9BFBDE3763FDD8DFF63FE37C38E3FEE088A888BF+8'8,8$Y"8$8#G"Q"PD'
X00000003B9FFDFDBEDFEAEBAEFC7FF7FEDFEFFB9BE9AE86E9AABBFFEBFEFCFAFFFDF987FF777FFB00000001F+9&8,8$G$9$E"<"I'
X22122213E9FFAFDB0DF0833FC7FEBF0DF0FFBBF0BB3DEEBEACFFFF7FDFDFFFBF1FFFDFFB8FFEE22212221F+8+8$8#8$G$9$E"<"I'
X08440847B9FFDFDAEDEE2EBFDFC7FF7FFFDAEDEEEEBBDDAF7FFEBFEFAFFFDF07FF8FF7FFFFB00844085F(8*9"9#8#8$G(G"J'
XA100A103E9FFAFAEFFBCA1BAEFC7FEBFAEBAEDABBFFF7FDFDFFFA000001C01FB:FEE0A100A11F58(8$9(=$8%E"g"C'
X60408040BB9FFDF870E70FFBFAFC71FC7FF7FFF870E70F0BB1DF1BEEC7FFEBFEFF75D8DDFF3FE7FAFFFC01F007F07F40FFFB00408041F3X8$:&>"P$E"J'
X20A220A3E9FFAFFFFFFFFFFBAFFFFFC7FEBFFF7FDF4DDDDFEDDFDFC00F03F8:FEE220A220BF(:#9#E$;%>";#FYC'
X0A000A03B9FFDFFC6FFF7FFEBFEFDEBFEFFFAFF002FFB00A000A1F(:#9#E$:"9#=";$J'
X8088808BE9FFAFFFFFFEBFFF7FDF559F78DFFC0001JFEE08088809F(?#E$;'<";$E$;#G'
X04000403B9FFDFFF7FFEBFEFDF7FC3DF777FAFFF8000C0007FF07FFFB00400041F(?#E$:'="<"C';#G'
X222A222BE9FFAFFEBFFF7FDF59DEBFEFDF70DFE08FFFFC0007FFF81FFEE2222A223F(?#E$?#<"<$A&<#G'
X08000803B9FFDFFF7FFEBFEF77FFAFF8007F81FFE0003FFC0FFFB00800081F(?#E$:$9"<">"A&<#G'
X82928293E9FFAFFEBFFF7FDF5DDDDF7FDF3F803E0003FFFE07FEE28292829F(?#E$9$8$<">"A%=#G'
X08000803B9FFDFFF7FFEBFEFF8DD8D8E38FFAF1FC000003FFF03FFB008000811(?#E$9R="<$C#>"G'
X22222223E9FFAFFEBFFF7FDFDFF0000701FF81FEE222222231(?#E$G">"C"?$E'
X10011003B9FFDFFF7FFEBFEFAF001FC0FF7FFFB110011011(?#E$G"<%@$?#F'
X88A888ABE9FFAFFEBFFF7FDFDFFFFF003F8000FFE07EFEE088A888B1(?#E$G">#?$@#F'
X00000003B9FFDFFF7FFEBFEFAFC00FF80003F03CFFB0000000114w&i"8">#?$@$E'
X22122213E9FFAFFAAAAAAAAAAAAABFC7FEBFEAAABFC7FF7FD00FDFF003800007F8183FFEE22212221F4w&G">#>%@#F'
X08440847B9FFDFF55555555555553FC7FF7FD5553FC7FEBFE0AFFE00FC00000FFC00FFB00844085F)Q8$W8#Z8">$=%@"G'
XA100A103E9FFAFFBFEBFEFFF7F0DFFF801FC000601FFEFEE0A100A100)>$D#H"?#=%@#F'
X0408040BB9FFDFF7FF7FDFFEBFAFFFFFFFFFE03FFF80FFB00408041F)>$D#H"J"B"E'
X20A220A3E9FFAFFBFEBFEFFF7FDF57F1FFEE220A220A0)>$D#H"<"w$A"F'
X0A000A03B9FFDFF7FF7FDFFEBFAFFEAAABF1FF00FFB00A000A00-:&9%;#H"<"w#A"G'
X8088808BE9FFAFFBFFFDF0E3FEBFEFF8DF9FF07F9FFF7FDFFD5553F3FEFEE080888080)8#:&9%;#H"<"W#A$E'
X04000403B9FFDFF7F75DFF7FDFF75FDFF7F7DEFEBFAFFEF3F7FC000FFFB00400040C)9":&;"<#H"<"C"A"G'
X222A222BE9FFAFFB5FFEBFEFF7DFFFFF7FDFFDFFF8FEE2222A222E)>)8%9$y"8"<"J$E'
X08000803B9FFDFF7FF7FDFF7D38D34E3E7DC38D3FEBFEAAAAFAFFE9FF0007FFB008000813)8#:/9$y"8"<"J#E'
X82928293E9FFAFFBF0E3FEBFEFF7CDF4D35DDFF0F7DEF74DFF7FD5554FDFFD:F003FEE282928280)8#:+8#9$Y"8"<-E#E'
X08000803B9FFDFF7F5FDFF7FDFF7DD85D741DFF7F05FFEBFEFCFAFFEDD8DD8FF8C307F0FFFE7F7FE01FFB00800081F)8";$8$:#9$G"<,F#E'
X22222223E9FFAFFBF6FEBFEF75D75FF7DFFF7FDFDFFDCDDDD77FDED7FFB7FDF7FFC0FEE22222223F)8#:&8":#9$G"<&:"H#D'
X10011003B9FFDFF7F75DFF7FDFF75D5DD75FFEBFEFAFFECDDC97FFFFE07FFFB11001101F-:/9$G"<%:&E#D'
X88A888ABE9FFAFFBFFFC1763FEBFEFF8DD85D7638FF7E38F38DFFF7FDFDFFDD5DD57B5D9F78634F03FFEE088A888BF-:$V9$8$9#="<"8"8)D#D'
X00000003B9FFDFF7FFFFFFFFFF7FDFFEBFEFFE30F7FE7FAFFE58D0FF8DDDF775D373F81FFFB000000000)>$D$8$9">"<*8$D#D'
X22122213E9FFAFFBFEBFEFFF7FDFFDDB6BFFDFFDD9DDDF7FDED7FFB57417F3FE0FFEE22212221F)>$D$9#B"<"@#E#D'
X08440847B9FFDFF7FF7FDFFEBFEFFB5DAFFE75F7FF07FFB008440855)>$D$;'<"<%;"8"F"D'
XA100A103E9FFAFFBFEBFEFFF7FDFFE30E38F78D3DFFDDDDDD79DD781FEE0A100A11F)a8$g8$;'<"<.F"D'
X0408040BB9FFDFF4FF7FD0FEBFEFFDD75D77774DAFFEDD8DD8FF8C37FF0E58E38637C0FFB004080400)>$D$:$8#<"<"WF#C'
X20A220A3E9FFAFF8FEBFE0FF7FDF41FE77705FDFFDE07FFEE220A220B5(S$Y%:$8#<"<"J#C'
X0A000A03B9FFDFC7FF7FC7FEBFEF5DFFB777DFAFFE<F03FFFB00A000A1F(?#E$9&8"<"<"J#C'
X8088808BE9FFAFFEBFFF7FDFDB5DFDD0DD5FDFFD<F81FFEE08088809F(?#E$8*<"<"J#C'
X04000403B9FFDFFF7FFEBFEFFE30DDFE37E38E38DFAFFE<FC0FFFB004000408(?#E$8*<"<"g"E#C'
X222A222BE9FFAFFEBFFF7FDFFFFFFFFFF7FFFFFFFFDFFD03FE07FEE2222A223F(?#E$G"<"J#C'
X08000803B9FFDFFF7FFEBFEFAFFE<FF03FFB008000800(?#E$<"@"<YF"C'
X82928293E9FFAFFEBFFF7FDFFFDF81FEE282928288(?#E$G"J"C'
X08000803B9FFDFFF7FFEBFEFAFDC0FFB0080008004w&i"8"J#B'
X22222223E9FFAFFAAAAAAAAAAAAABFC7FEBFEAAABFC7FF7FD00FDFDE07FFEE2222222354w&G"J#B'
X10011003B9FFDFF55555555555553FC7FF7FD5553FC7FEBFE0AFDF83FFFB110011000)Q8$W8#Z8"J#B'
X88A888ABE9FFAFFBFEBFEFFF7F0DFDFFFFFEE088A888BF)>$D#H"J'
X00000003B9FFDFF7FF7FDFFEBFAFO$FFB00000001E)>$D#H"J"w":'
X22122213E9FFAFFBFEBFEFFF7FDF at D5557FFEE222122208)>$D#H"Jx;'
X08440847B9FFDFF7FF7FDFFEBFAF at AAFFB00844085F-:%8#9$9#H"J"V";'
XA100A103E9FFAFFBFFFC1763FEBFEC1FF77F8C10DDFF7FDF at DFFEFEE0A100A11E-:%=$9#H"J"G'
X0408040BB9FFDFF7FFFDF35DFF7FDF7D75FB5DFEBFAF at BFFFB00408041F)9":%8":";#H"J"G'
X20A220A3E9FFAFFB5FFEBFEF7FF27DFF7FDF at DFFEE220A220BF)8";+:"8$y"8"J"G'
X0A000A03B9FFDFF7F5FF7FDF79CB8FF5634E388FFEBFEAAAAFAF at BFFFB00A000A1F,;08$y"8"J%>";'
X8088808BE9FFAFFBFFFC35FEBFEF7DD577F55D35D77F8C3B5D77FF7FD5554FDF at DC7FFFFC3EFEE08088809F-:$8+8$Y"8"J%9":";'
X04000403B9FFDFF7FFFDF659FF7FDF07F7417DD07FF5FB5D9FFEBFEFCFAF at BBBFFFFEF7BEFFB00400041F)9":$8'9"8$G"J#:"A'
X222A222BE9FFAFFB5DFEBFEF7FF75F7DD7FFEFFF7FDFDF at DBFFBFFEE2222A223F)8";$8(8"8$G"J-<'
X08000803B9FFDFF7F7FF7FDF77F75D7E177F7577FEBFEFAF at BBE1C71EF1A71FE1961FF187FFB00800081F-:08$G"J-<'
X82928293E9FFAFFBFFFC1763FEBFEF78DD8FF7637FD8FF8DF0E38FFF7FDFDF at DC6EBAEEEE9BBFF7AAEFEEBBFEE28292829F-:$P#P8&;"?"J#8&v%
X08000803B9FFDFF7FFFFFFFFFF7FDFFDDFFEBFEC3063E7AF at BFAEE0BFFFF7AD555000081F)>$;#=.8#9"J"9"9w%
X22222223E9FFAFFBFEBFEFFE3FFF7FDEDDDDFFFDFFBFFFF7FFFDFDEFDF at DFEFAAA222223F)>$;#=(;"8":"J#8&v%
X10011003B9FFDFF7FF7FDFFFFFFEBFEEDDDFFFFFFFFFAF at BBA1EEBFBFF6AD554001101F)>$D$8-9"J*v%
X88A888ABE9FFAFFBFEBFEFFF7FDEFDD9D30DD8F7FE39D38DD9C3DF at DC6FC71C71BF1FF9BAAA80A888BF)a8$g829"J+U%
X00000003B9FFDFF4FF7FD0FEBFEEDDE3FDDDCDBDDF77FDDDCD75DDEFAF at BFEFFFFFFFFFBFFFFD7F8000001F)>$D&8$8$;"J";%@%
X22122213E9FFAFF8FEBFE0FF7FDEDDFDDFBDD8FDDF7DDF at DFFFFFFAFF8212221F(S$Y%8#8"@"J#<#@%
X08440847B9FFDFC7FF7FC7FEBFEEFEBDD7AF at BFFFFD7F8044085F(?#E&9#8&9"J"=#@%
XA100A103E9FFAFFEBFFF7FDEDDDDB597DDDF759DEDDF at DFFAFF8100A11F(?#E29"J"b$9#:%
X0408040BB9FFDFFF7FFEBFEC3DE3FF78DFCE5863FE38DF8E58F3AF at A00571BFFBBF8408041F(?#E$Y9"J"=#:";%
X20A220A3E9FFAFFEBFFF7FDFDF at C002EEF980A220BF(?#E$G"JS#@%
X0A000A03B9FFDFFF7FFEBFEFAF at FD6F82000A1F(?#E$G"J+8%
X8088808BE9FFAFFEBFFF7FDFDFHFAEFA71A71C7FAB1971F8088809F(?#E$G"J+8%
X04000403B9FFDFFF7FFEBFEFAFHFD6F9BE9AEBBFABEAAEF8400041F3E$i"8"J+8%
X222A222BE9FFAFFAAAAAAAAAAAAABFC7FEBFFF7FD00FDFHFAEFBB0BAE83FB30AA0F822A223F3E$G"J+8%
X08000803B9FFDFF55555555555553FC7FF7FFEBFE0AFHFD6FBAEBAEBFFB2EAAFF8000081F)Q8#E#Z8"J#8-
X82928293E9FFAFFBFEBFFF7F0DFHFAEEB0BBFBAEAAEEFBEF8292829F)>#E#H"J1
X08000803B9FFDFF7FF7FFEBFAFHFD71BB0BBEC7FBB0BB1C71C78000081F)>#E#H"J1
X22222223E9FFAFFBFEBFFF7FDFHFAFFFFFFEEFF3FFFFFFEFBEF8222223F)>#E#H"J#8#9(
X10011003B9FFDFF7FF7FFEBFAFHFD7FF1FCFFFFFF8001101F-:#E#H"J#8$<$
X88A888ABE9FFAFFBFFFE3043FEBFFF7FDFHFAFFFFF07FA888BF-:#E#H"J#9"=$
X00000003B9FFDFF7FFFDD7EDFF7FFEBFAFHFD7FC000001F)8";#E#H"J(`%
X22122213E9FFAFFBF7FEBFFF7FDFHFA8000000300800212221F)>#E#H"J#8"=%
X08440847B9FFDFF7FF7FFEBFAFHFD00040044085F,;#E#H"J"9$;%
XA100A103E9FFAFFBFFFE30FEBFFF7FDFHFA07C1000100A11F,;#E#H"J1
X0408040BB9FFDFF7FFFFD7FF7FFEBFAFHFCAAAAAAAA81AAAAAAAAAAAAA408041F)>#E#H"J'Q%
X20A220A3E9FFAFFBFEBFFF7FDFHFBFFFFFFFF13E0A220B1+<#E#H"J"9#<%
X0A000A03B9FFDFF7FFFDFF7FFEBFAFHFDFE33E2000A11-:#E#H"J"9#<%
X8088808BE9FFAFFBFFFE3043FEBFFF7FDFHFBFC77E0888091-:#E#H"J"9#<%
X04000403B9FFDFF7FFFFFFFFFF7FFEBFAFHFDF8F7E4000411)>#E#H"J"9#<%
X222A222BE9FFAFFBFEBFFF7FDFHFBF1FFE22A2231)>#E#H"J"9"=%
X08000803B9FFDFF7FF7FFEBFAFHFDFBE000081F)>#E#H"J#8"=%
X82928293E9FFAFFBFEBFFF7FDFHFBE1FFE292829F)a8#E#H"J$;"9%
X08000803B9FFDFF4FF7FFEBFAFHFDF6EFDFE0000800)>#E#H"J$?%
X22222223E9FFAFF8FEBFFF7FDFHFBF6FFE222223F(S$E#H"J*9%
X10011003B9FFDFC7FF7FFEBFAFHFDF6CF1C71A69C7187E0011000(?#E#H"J*:$
X88A888ABE9FFAFFEBFFF7FDFHFBF6EEEBAE9A6BAEDFA888A0(?#E#H"J);$
X00000003B9FFDFFF7FFEBFAFHFDF6EF3BEEBAE82F000000(?#E#H"J"8"8#:%
X22122213E9FFAFFEBFFF7FDFHFBDBEBEFE212220C(?#E#H"J&8#9%
X08440847B9FFDFFF7FFEBFAFHFDF6EEEBAEAEDBE044084E(?#E#H"J*9%
XA100A103E9FFAFFEBFFF7FDFHFBE1C71C71BAEC71E7E100A113(?#E#H"J"S9%
X0408040BB9FFDFFF7FFEBFAFHFDE4080400(?#E#H"J"A%
X20A220A3E9FFAFFEBFFF7FDFHFBE0A220BF(c$i$j$j"A%
X0A000A03B9FFD007FF4007FE80001FFA0H05E2000A1F(?#E#H"J"A%
X8088808BE9FFA0FE80FF00C0H03E088809F(?#E"I"J"A%
X04000403B9FFC0FF00FE80H05E400041F&Z"A%
X222A222BE9OKFBE22A2220&J"A%
X08000803B9OKFDE000081F&J"A%
X82928293E9OKFBE2928295&J"A%
X08000803B9OKFDE000081F&J"A%
X22222223E9OKFBE2222220&J"A%
X10011003B9OKFDE0011015&J"B$
X88A888ABE9OKFBA888BF&J#A$
X00000003B9OKFDE100001F&J%>%
X22122213E9OKFBF6FFFDE2122208&J"A%
X08440847B9OKFDE044085F&j(;%
XA100A103E8OK03F6C71869C6EFE100A100&Z'<%
X0408040BB8OKFDF6BAEDE6BAE4080408&J&=%
X20A220A3E8OKFBF6833DEFE0A220A0&J%8";%
X0A000A03B8OKFDF6BFDDCFE2000A15&J(;%
X8088808BE8OKFBF6BAEDAFBB2FE0888080&J(;%
X04000403B8OKFDE1C71E6FC7EFE400041F&J'<%
X222A222BE8OKFBFFFFFFFFFEE22A223E&J":#;%
X08000803B8OKFDFF1FE0000808&J";";%
X82928293E8OKFBFFE292829F&J"A%
X08000803B8OKFDE000081E&J"A%
X22222223E8OKFBE222223F&J"A%
X10011003B8OKFDE001101F&J"g$
X88A888ABE8OKFAA888BF&J"B$
X00000003B8OKFC00001F&JU'
X22122213E8OKF6E22212221F&J'
X08440847B8P'F7B00844085F&J'
XA100A103E8P'F6E0A100A11F&J'
X0408040BB8P'F7B00408041F&J'
X20A220A3E8P'F6E220A220BF&J'
X0A000A03B8P'F7B00A000A1F&J'
X8088808BE8P'F6E08088809F&J'
X04000403B8P'F7B00400041F&J'
X222A222BE8P'F6E2222A223F&J'
X08000803B8P'F7B00800081F&J'
X82928293E8P'F6E28292829F&J'
X08000803B8P'F7B00800081F&J'
X22222223E8P'F6E22222223F&J'
X10011003B8P'F7B11001101F&J'
X88A888ABE8P'F6E088A888BF&J'
X00000003B8P'F7B00000001F&J'
X22122213E8P'F6E22212221F&J'
X08440847B8P'F7B00844085F&J'
XA100A103E8P'F6E0A100A11F&J'
X0408040BB8P'F7B00408041F&J'
X20A220A3E8P'F6E220A220BF&J'
X0A000A03B8P'F7B00A000A1F&J'
X8088808BE8P'F6E08088809F&J'
X04000403B8P'F7B00400041F&J'
X222A222BE8P'F6E2222A223F&J'
X08000803B8P'F7B00800081F&J'
X82928293E8P'F6E28292829F&J'
X08000803B8P'F7B00800081F&J'
X22222223E8P'F6E22222223F&J'
X10011003B8P'F7B110011011&J'
X88A888ABE8P'F6E088A888B1&J'
X00000003B8P'F7B000000011&J'
X22122213E8P'F6E222122211&J'
X08440847B8P'F7B008440851&J'
XA100A103E8P'F6E0A100A11F&J'
X0408040BB8P'F7B00408041F&J'
X20A220A3E8P'F6E220A220A0&J'
X0A000A03B8P'F7B00A000A1F&J'
X8088808BE8P'F6E080888080&J'
X04000403B8P'F7B004000400&J'
X222A222BE8P'F6E2222A2220&J'
X08000803B8P'F7B00800080C&J'
X82928293E8P'F6E28292828E&J'
X08000803B8P'F7B008000813&J'
X22222223E8P'F6E222222220&J'
X10011003B8P'F7B11001101F&J'
X88A888ABE8P'F6E088A888BF&J'
X00000003B8P'F7B00000001F&J'
X22122213E8P'F6E22212221F&J'
X08440847B8P'F7B008440840&J'
XA100A103E8P'F6E0A100A11F&J'
X0408040BB8P'F7B004080415&J'
X20A220A3E8P'F6E220A220BF&J&
X0A000A0200P(000A000A00&J'
X8088808BFCP'F7F880888095&J&
X04000403B8P(B00400041F&J'
X222A222BE8P'F6E2222A223F&J'
X08000803B8P'F7B008000808&J'
X82928293E8P'F6E28292829F&J'
X08000803B8P'F7B008000800&J'
X22222223E8P'F6E222222228&J'
X10011003B8P'F7B110011000&J'
X88A888ABE8P'F6E088A888B5&J'
X00000003B8P'F7B000000000&J'
X22122213E8P'F6E22212221F&J'
X08440847B8P'F7B00844085E&J'
XA100A103E8P'F6E0A100A108&J'
X0408040BB8P'F7B00408041F&J'
X20A220A3E8P'F6E220A220BE&j'
X0A000A03B8P'07B00A000A1F&Z'
X8088808BE9P'FEE08088809F&J'
X04000403BBP'FFB00400041F(z)
X222A222BEEEEEDP#EEE6EEEEE2222A223F(z)
X08000803BBBBB9P#BBB7BBBBB00800081F(z)
X82928293EEEEEDP#EEE6EEEEE28292829F(z)
X08000803BBBBB9P#BBB7BBBBB00800081F(z)
X22222223EEEEEDP#EEE6EEEEE22222223F(j)
X10011003000001P#040000011001101F%8"J"8&
X88A888AA00P#000088A888BF%J%
X00000000P*0000001F5
XP2221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221F5
XP2084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844085F5
XP2A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A11F5
XP2040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408041F5
XP220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220BF5
XP20A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A1F5
XP2808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088809F5
XP2040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400041F5
XP2222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A223F5
XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081F5
XP2829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829F5
XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081Fz"
XP1223F5
XP2100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001101F5
XP288A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888A888BFj"
XP11F5
XP2221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221222122212221F5
XP2084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844084408440844085F5
XP2A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A100A11F5
XP2040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408040804080408041F5
XP220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220A220BF5
XP20A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A000A1F5
XP280888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880888088808880915
XP204000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004000400040004115
XP2222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A222A22315
XP208000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008115
XP282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282928292829282915
XP2080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800080008000800081F
XENDBITMAP
X
X%%EndBinary
XU
XFMENDPAGE
X%%Page: "4" 4
XFMBEGINPAGE
X72. 531. 630. 531. 2 L
X3 H
X0 X
XN
X678. 542. 687. 549. R
XV
X7 X
X90. 450. 3. 3.5 684. 545.5 G
X675. 542. 684. 549. R
XV
X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y
X0 X
XV
X0 H
XN
X270. 360. 6.5 6.5 653.5 535.5 G
X270. 270.1 6.5 -6.5 647. 529. A
X270. 0. -6.5 -6.5 660. 529. A
X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y
XV
XN
X180. 270. 7. 6.5 703. 535.5 G
X180. 180.1 7. 6.5 696. 542. A
X180. 270. 7. -6.5 696. 529. A
X669. 556. 669. 529. 663. 529. 663. 556. 4 Y
XV
XN
X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556.
X 669. 549. 687. 549. 687. 542. 10 Y
XV
XN
X0. 90. 6.5 7. 687.5 549. G
X0. 90. -6.5 7. 694. 556. A
X270. 360. 6.5 7. 687.5 542. G
X270. 270.1 6.5 -7. 681. 535. A
X270. 0. -6.5 -7. 694. 535. A
X0 F
X(D.E.Smyth, December 1990) 72. 54. T
X(II.4) 703.01 54. T
X1 F
X(The Application Provides Objects ) 72. 486. T
X72. 90. 720. 504. C
XU
X72. 90. 720. 504. C
X72. 90. 719. 480. C
X187. 293. 214. 329. 214. 311. 241. 311. 241. 329. 268. 293. 241. 257.
X 241. 275. 214. 275. 214. 257. 10 Y
X3 X
XV
X1 H
X0 X
XN
X7 X
X90. 450. 58.5 157.5 359.5 292.5 G
X0 X
X90. 90.1 -58.5 157.5 418. 450. A
X90. 180.1 58.5 157.5 301. 450. A
X180. 270.1 58.5 -157.5 301. 135. A
X270. 0.1 -58.5 -157.5 418. 135. A
X0. 90. -58.5 157.5 418. 450. A
X346. 153. 364. 216. R
X5 X
XV
X0 X
XN
X347. 396. 364. 432. R
X5 X
XV
X0 X
XN
X344. 342. 400. 378. R
X5 X
XV
X0 X
XN
X373. 279. 403. 315. R
X5 X
XV
X0 X
XN
X319. 279. 337. 342. R
X5 X
XV
X0 X
XN
X373. 198. 400. 252. R
X5 X
XV
X0 X
XN
X319. 216. 337. 252. R
X5 X
XV
X0 X
XN
X1 F
X(Widgets) 315. 108. T
X7 X
X90. 450. 17.5 47.5 135.5 292.5 G
X0 X
X90. 90.1 -17.5 47.5 153. 340. A
X90. 180.1 17.5 47.5 118. 340. A
X180. 270.1 17.5 -47.5 118. 245. A
X270. 0.1 -17.5 -47.5 153. 245. A
X0. 90. -17.5 47.5 153. 340. A
X131. 250. 137. 269. R
X5 X
XV
X0 X
XN
X132. 324. 137. 335. R
X5 X
XV
X0 X
XN
X131. 307. 148. 318. R
X5 X
XV
X0 X
XN
X140. 288. 149. 299. R
X5 X
XV
X0 X
XN
X123. 288. 129. 307. R
X5 X
XV
X0 X
XN
X140. 264. 148. 280. R
X5 X
XV
X0 X
XN
X123. 269. 129. 280. R
X5 X
XV
X0 X
XN
X(Problem) 89. 219. T
X(Domain) 92. 195. T
X(1:1) 211. 284. T
X7 X
X90. 450. 58.5 157.5 626.5 292.5 G
X0 X
X90. 90.1 -58.5 157.5 685. 450. A
X90. 180.1 58.5 157.5 568. 450. A
X180. 270.1 58.5 -157.5 568. 135. A
X270. 0.1 -58.5 -157.5 685. 135. A
X0. 90. -58.5 157.5 685. 450. A
X613. 153. 631. 216. R
X5 X
XV
X0 X
XN
X614. 396. 631. 432. R
X5 X
XV
X0 X
XN
X611. 342. 667. 378. R
X5 X
XV
X0 X
XN
X640. 279. 670. 315. R
X5 X
XV
X0 X
XN
X586. 279. 604. 342. R
X5 X
XV
X0 X
XN
X640. 198. 667. 252. R
X5 X
XV
X0 X
XN
X586. 216. 604. 252. R
X5 X
XV
X0 X
XN
X(Objects) 585. 108. T
X452. 293. 479. 329. 479. 311. 506. 311. 506. 329. 533. 293. 506. 257.
X 506. 275. 479. 275. 479. 257. 10 Y
X3 X
XV
X0 X
XN
X(1:1) 476. 285. T
X72. 90. 720. 504. C
XU
XFMENDPAGE
X%%Page: "3" 3
XFMBEGINPAGE
X72. 531. 630. 531. 2 L
X3 H
X0 X
XN
X678. 542. 687. 549. R
XV
X7 X
X90. 450. 3. 3.5 684. 545.5 G
X675. 542. 684. 549. R
XV
X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y
X0 X
XV
X0 H
XN
X270. 360. 6.5 6.5 653.5 535.5 G
X270. 270.1 6.5 -6.5 647. 529. A
X270. 0. -6.5 -6.5 660. 529. A
X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y
XV
XN
X180. 270. 7. 6.5 703. 535.5 G
X180. 180.1 7. 6.5 696. 542. A
X180. 270. 7. -6.5 696. 529. A
X669. 556. 669. 529. 663. 529. 663. 556. 4 Y
XV
XN
X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556.
X 669. 549. 687. 549. 687. 542. 10 Y
XV
XN
X0. 90. 6.5 7. 687.5 549. G
X0. 90. -6.5 7. 694. 556. A
X270. 360. 6.5 7. 687.5 542. G
X270. 270.1 6.5 -7. 681. 535. A
X270. 0. -6.5 -7. 694. 535. A
X0 F
X(D.E.Smyth, December 1990) 72. 54. T
X(II.3) 703.01 54. T
X1 F
X(The Widgets Represent the Problem Domain ) 72. 486. T
X72. 90. 720. 504. C
XU
X72. 90. 720. 504. C
X72. 90. 719. 480. C
X342. 293. 369. 329. 369. 311. 396. 311. 396. 329. 423. 293. 396. 257.
X 396. 275. 369. 275. 369. 257. 10 Y
X3 X
XV
X1 H
X0 X
XN
X7 X
X90. 450. 58.5 157.5 494.5 292.5 G
X0 X
X90. 90.1 -58.5 157.5 553. 450. A
X90. 180.1 58.5 157.5 436. 450. A
X180. 270.1 58.5 -157.5 436. 135. A
X270. 0.1 -58.5 -157.5 553. 135. A
X0. 90. -58.5 157.5 553. 450. A
X481. 153. 499. 216. R
X5 X
XV
X0 X
XN
X482. 396. 499. 432. R
X5 X
XV
X0 X
XN
X479. 342. 535. 378. R
X5 X
XV
X0 X
XN
X508. 279. 538. 315. R
X5 X
XV
X0 X
XN
X454. 279. 472. 342. R
X5 X
XV
X0 X
XN
X508. 198. 535. 252. R
X5 X
XV
X0 X
XN
X454. 216. 472. 252. R
X5 X
XV
X0 X
XN
X1 F
X(Widgets) 450. 108. T
X7 X
X90. 450. 17.5 47.5 314.5 290.5 G
X0 X
X90. 90.1 -17.5 47.5 332. 338. A
X90. 180.1 17.5 47.5 297. 338. A
X180. 270.1 17.5 -47.5 297. 243. A
X270. 0.1 -17.5 -47.5 332. 243. A
X0. 90. -17.5 47.5 332. 338. A
X310. 248. 316. 267. R
X5 X
XV
X0 X
XN
X311. 322. 316. 333. R
X5 X
XV
X0 X
XN
X310. 305. 327. 316. R
X5 X
XV
X0 X
XN
X319. 286. 328. 297. R
X5 X
XV
X0 X
XN
X302. 286. 308. 305. R
X5 X
XV
X0 X
XN
X319. 262. 327. 278. R
X5 X
XV
X0 X
XN
X302. 267. 308. 278. R
X5 X
XV
X0 X
XN
X(Problem) 269. 216. T
X(Domain) 272. 192. T
X(1:1) 366. 284. T
X72. 90. 720. 504. C
XU
XFMENDPAGE
X%%Page: "2" 2
XFMBEGINPAGE
X72. 531. 630. 531. 2 L
X3 H
X0 X
XN
X678. 542. 687. 549. R
XV
X7 X
X90. 450. 3. 3.5 684. 545.5 G
X675. 542. 684. 549. R
XV
X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y
X0 X
XV
X0 H
XN
X270. 360. 6.5 6.5 653.5 535.5 G
X270. 270.1 6.5 -6.5 647. 529. A
X270. 0. -6.5 -6.5 660. 529. A
X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y
XV
XN
X180. 270. 7. 6.5 703. 535.5 G
X180. 180.1 7. 6.5 696. 542. A
X180. 270. 7. -6.5 696. 529. A
X669. 556. 669. 529. 663. 529. 663. 556. 4 Y
XV
XN
X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556.
X 669. 549. 687. 549. 687. 542. 10 Y
XV
XN
X0. 90. 6.5 7. 687.5 549. G
X0. 90. -6.5 7. 694. 556. A
X270. 360. 6.5 7. 687.5 542. G
X270. 270.1 6.5 -7. 681. 535. A
X270. 0. -6.5 -7. 694. 535. A
X0 F
X(D.E.Smyth, December 1990) 72. 54. T
X(II.2) 703.01 54. T
X1 F
X(The User Understands the Problem Domain) 72. 486. T
X72. 90. 720. 504. C
XU
X72. 90. 720. 504. C
X72. 90. 719. 480. C
X3 X
X90. 450. 45. 45. 393. 236. G
X438. 218. 393. 236. 438. 191. 3 Y
X7 X
XV
X0 X
X0. 90. 18. 9. 402. 245. G
X0 H
X0. 90. -18. 9. 420. 254. A
X1 F
X(User) 366. 165. T
X7 X
X90. 450. 17.5 47.5 424.5 363.5 G
X1 H
X0 X
X90. 90.1 -17.5 47.5 442. 411. A
X90. 180.1 17.5 47.5 407. 411. A
X180. 270.1 17.5 -47.5 407. 316. A
X270. 0.1 -17.5 -47.5 442. 316. A
X0. 90. -17.5 47.5 442. 411. A
X420. 321. 426. 340. R
X5 X
XV
X0 X
XN
X421. 395. 426. 406. R
X5 X
XV
X0 X
XN
X420. 378. 437. 389. R
X5 X
XV
X0 X
XN
X429. 359. 438. 370. R
X5 X
XV
X0 X
XN
X412. 359. 418. 378. R
X5 X
XV
X0 X
XN
X429. 335. 437. 351. R
X5 X
XV
X0 X
XN
X412. 340. 418. 351. R
X5 X
XV
X0 X
XN
X0 H
X90. 90.1 -4.5 4.5 398. 294. A
X90. 180.1 4.5 4.5 389. 294. A
X180. 270.1 4.5 -4.5 389. 285. A
X270. 0.1 -4.5 -4.5 398. 285. A
X0. 90. -4.5 4.5 398. 294. A
X90. 90.1 -9. 9. 389. 312. A
X90. 180.1 9. 9. 371. 312. A
X180. 270.1 9. -9. 371. 294. A
X270. 0.1 -9. -9. 389. 294. A
X0. 90. -9. 9. 389. 312. A
X90. 90.1 -13.5 13.5 407. 339. A
X90. 180.1 13.5 13.5 380. 339. A
X180. 270.1 13.5 -13.5 380. 312. A
X270. 0.1 -13.5 -13.5 407. 312. A
X0. 90. -13.5 13.5 407. 339. A
X72. 90. 720. 504. C
XU
XFMENDPAGE
X%%Page: "1" 1
XFMBEGINPAGE
X72. 531. 630. 531. 2 L
X3 H
X0 X
XN
X678. 542. 687. 549. R
XV
X7 X
X90. 450. 3. 3.5 684. 545.5 G
X675. 542. 684. 549. R
XV
X633. 529. 640. 535. 654. 535. 654. 556. 660. 556. 660. 535. 654. 529. 7 Y
X0 X
XV
X0 H
XN
X270. 360. 6.5 6.5 653.5 535.5 G
X270. 270.1 6.5 -6.5 647. 529. A
X270. 0. -6.5 -6.5 660. 529. A
X723. 529. 717. 535. 703. 535. 703. 556. 696. 556. 696. 535. 703. 529. 7 Y
XV
XN
X180. 270. 7. 6.5 703. 535.5 G
X180. 180.1 7. 6.5 696. 542. A
X180. 270. 7. -6.5 696. 529. A
X669. 556. 669. 529. 663. 529. 663. 556. 4 Y
XV
XN
X669. 542. 676. 535. 687. 535. 694. 542. 694. 549. 687. 556. 669. 556.
X 669. 549. 687. 549. 687. 542. 10 Y
XV
XN
X0. 90. 6.5 7. 687.5 549. G
X0. 90. -6.5 7. 694. 556. A
X270. 360. 6.5 7. 687.5 542. G
X270. 270.1 6.5 -7. 681. 535. A
X270. 0. -6.5 -7. 694. 535. A
X0 F
X(D.E.Smyth, December 1990) 72. 54. T
X(II.1) 703.01 54. T
X1 F
X(Guiding Principles of GUI Applications:) 72. 486. T
X(The User is in Control ) 276.64 370. T
X276.64 365.71 515.37 367.46 R
XV
X72. 90. 720. 504. C
XU
X72. 90. 720. 504. C
X72. 184. 719. 364. C
X3 X
X90. 450. 45. 45. 395. 272. G
X440. 254. 395. 272. 440. 227. 3 Y
X7 X
XV
X0 X
X0. 90. 18. 9. 404. 281. G
X0 H
X0. 90. -18. 9. 422. 290. A
X1 F
X(User) 369. 201. T
X72. 90. 720. 504. C
XU
XFMENDPAGE
X%%Trailer
X%%Pages: 12 -1
X%%DocumentFonts: Times-Roman
X%%+ Helvetica-Oblique
X%%+ Helvetica-Bold
!STUFFY!FUNK!
echo Extracting Wc/WcReg.c
sed >Wc/WcReg.c <<'!STUFFY!FUNK!' -e 's/X//'
X/*
X** Copyright (c) 1990 David E. Smyth
X**
X** This file was derived from work performed by Martin Brunecky at
X** Auto-trol Technology Corporation, Denver, Colorado, under the
X** following copyright:
X**
X*******************************************************************************
X* Copyright 1990 by Auto-trol Technology Corporation, Denver, Colorado.
X*
X* All Rights Reserved
X*
X* Permission to use, copy, modify, and distribute this software and its
X* documentation for any purpose and without fee is hereby granted, provided
X* that the above copyright notice appears on all copies and that both the
X* copyright and this permission notice appear in supporting documentation
X* and that the name of Auto-trol not be used in advertising or publicity
X* pertaining to distribution of the software without specific, prior written
X* permission.
X*
X* Auto-trol disclaims all warranties with regard to this software, including
X* all implied warranties of merchantability and fitness, in no event shall
X* Auto-trol be liable for any special, indirect or consequential damages or
X* any damages whatsoever resulting from loss of use, data or profits, whether
X* in an action of contract, negligence or other tortious action, arising out
X* of or in connection with the use or performance of this software.
X*******************************************************************************
X**
X** Redistribution and use in source and binary forms are permitted
X** provided that the above copyright notice and this paragraph are
X** duplicated in all such forms and that any documentation, advertising
X** materials, and other materials related to such distribution and use
X** acknowledge that the software was developed by David E. Smyth. The
X** name of David E. Smyth may not be used to endorse or promote products
X** derived from this software without specific prior written permission.
X** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
X** WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
X** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
X**
X*/
X
X/*
X* SCCS_data: @(#)WcReg.c 1.1 ( 19 Nov 90 )
X*
X* Subsystem_group:
X*
X* Widget Creation Library
X*
X* Module_description:
X*
X* Since (for portability reasons) we can not assume runtime binding,
X* all widget classes, creation routines (constructors), and callbacks
X* must be "registered" by the application BEFORE widget tree creation.
X*
X* All four of the functions defined in this module load dynamically
X* allocated and extended arrays of structures. The size increment
X* of the arrays starts at a reasonably small size (INCR_REGISTRY,
X* initially 32), and is doubled in size everytime a given registry is
X* filled. This allows registries to be small, yet to not have to be
X* realloc'd frequently when they grow large.
X*
X* The registries are arrays of structs. In all four cases, the
X* structs are very similar: they contain a name string which holds the
X* class, constructor, or callback name as it was registered; a quark
X* which is based on an all lower case representation of the name, and
X* class, constructor, or callback specific information. The name
X* as registered should be as shown in reference documents and source
X* code, as it is used for user error messages.
X*
X* The registries are intended to be used by string-to-whatever converters.
X*
X* All four registration functions currently check for duplicate
X* entries, but do no fancy hashing scheme, nor any ties to the
X* application context. Assumming a relatively small number of
X* entries in these regestries, it is assumed that a sequential
X* search using quarks will be adequate and simple.
X
X* Module_interface_summary:
X*
X* WcRegisterClassPtr(
X* XtAppContext app, - application context
X* String name, - class ptr name, as in ref manuals
X* WidgetClass class ) - class record pointer
X*
X* WcRegisterClassName(
X* XtAppContext app, - application context
X* String name, - class name, as in ref manuals
X* WidgetClass class ) - class record pointer
X*
X* WcRegisterConstructor(
X* XtAppContext app, - application context
X* String name, - constructor name, as in ref manuals
X* (*Widget)() const ) - constructor function pointer
X*
X* WcRegisterCallback(
X* XtAppContext app, - application context
X* String name, - callback name, "nice" capitalization
X* void (*func)() ) - pointer to callback function
X*
X* WcRegisterAction(
X* XtAppContext app, - application context
X* String name, - action name
X* XtActionProc proc ) - action proc
X
X* WcAllowDuplicateRegistration ( int allowed )
X* WcAllowDuplicateClassPtrReg ( int allowed )
X* WcAllowDuplicateClassNameReg ( int allowed )
X* WcAllowDuplicateConstructorReg ( int allowed )
X* WcAllowDuplicateCallbackReg ( int allowed )
X*
X* Module_history:
X
X* mm/dd/yy initials function action
X* -------- -------- -------- ---------------------------------------------
X* 16Jul90 D.Smyth Added WcAllowDuplicate*()
X* 19Jun90 D.Smyth Version 1.0 Widget Creation Library
X* 06/08/90 D.Smyth All Added "name" member for better user msgs.
X* 02/26/90 MarBru All Created
X* 02/16/90 MarBru Create.. Limited creation to composite widgets/objects
X*
X* Design_notes:
X*
X* For VMS, we could have used LIB$FIND_IMAGE_SYMBOL and use dynamic
X* (runtime) binding. But since most UNIX systems lack such capability,
X* we stick to the concept of "registration" routines.
X*
X*******************************************************************************
X*/
X/*
X*******************************************************************************
X* Include_files.
X*******************************************************************************
X*/
X
X/* -- X Window System Includes */
X#include <X11/Intrinsic.h>
X
X/* -- Widget Creation Includes */
X#include "WcCreate.h"
X#include "WcCreateP.h"
X
X/*
X*******************************************************************************
X* Private_data_definitions.
X*******************************************************************************
X The following cache/registry of known widget classes, contructors,
X and callbacks are initially empty, and are loaded by the application
X using "registration" routines.
X*/
X
Xstatic char msg[MAX_ERRMSG];
X
Xstatic int allowDuplicateClassPtrReg = FALSE;
Xstatic int allowDuplicateClassNameReg = FALSE;
Xstatic int allowDuplicateConstructorReg = FALSE;
Xstatic int allowDuplicateCallbackReg = FALSE;
X
X/* -- Named class pointer cache, intially empty */
X
Xint classes_num = 0;
Xint classes_max = 0;
XClCacheRec *classes_ptr = NULL;
X
X/* -- Class name cache, intially empty */
X
Xint cl_nm_num = 0;
Xint cl_nm_max = 0;
XClNameCacheRec* cl_nm_ptr = NULL;
X
X/* -- Named object constructor cache, intially empty */
X
Xint constrs_num = 0;
Xint constrs_max = 0;
XConCacheRec *constrs_ptr = NULL;
X
X/* -- Named callback procedures cache, intially empty */
X
Xint callbacks_num = 0;
Xint callbacks_max = 0;
XCBCacheRec *callbacks_ptr = NULL;
X
X/*
X*******************************************************************************
X* Private_function_declarations.
X*******************************************************************************
X*/
X
X/*
X*******************************************************************************
X* Public_function_declarations.
X*******************************************************************************
X*/
X
X/*
X -- Allow or Disallow Duplicate Registrations
X*******************************************************************************
X By default, the Widget Creation Library does not allow a
X string-to-callback, string-to-class, etc bindings to be re-defined.
X Some applications, most noticably user interface builders, need to be
X able to change these bindings in order to provide additional
X flexibility. Therefore the following functions are provided. The
X typical user interface builder will make this single call:
X
X WcAllowDuplicateRegistration( TRUE );
X
X which allows class pointers, class names, constructors, and callbacks
X to be changed during execution.
X*/
X
Xvoid WcAllowDuplicateRegistration( allowed )
X int allowed;
X{
X allowDuplicateClassPtrReg = allowed;
X allowDuplicateClassNameReg = allowed;
X allowDuplicateConstructorReg = allowed;
X allowDuplicateCallbackReg = allowed;
X}
Xvoid WcAllowDuplicateClassPtrReg( allowed )
X int allowed;
X{
X allowDuplicateClassPtrReg = allowed;
X}
Xvoid WcAllowDuplicateClassNameReg( allowed )
X int allowed;
X{
X allowDuplicateClassNameReg = allowed;
X}
Xvoid WcAllowDuplicateConstructorReg( allowed )
X int allowed;
X{
X allowDuplicateConstructorReg = allowed;
X}
Xvoid WcAllowDuplicateCallbackReg( allowed )
X int allowed;
X{
X allowDuplicateCallbackReg = allowed;
X}
X
X/*
X -- Register Class Pointer Name
X*******************************************************************************
X This procedure adds class pointer name to our list of registered
X classes. Note that the class ptr name is effectively case insensitive
X as it is being quarkified. However, one should register the class ptr
X names using the "standard" capitalization (whatever is in the reference
X manual for the widget set) as the name as registered is used for error
X messages.
X
X The registry is primarily used by CvtStringToClassPtr().
X*/
X
Xvoid WcRegisterClassPtr ( app, name, class )
X XtAppContext app; /* not used (yet), must be present */
X char* name; /* class ptr name, case insensitive */
X WidgetClass class; /* Xt object class pointer */
X{
X char *lowerCaseName;
X XrmQuark quark;
X ClCacheRec *rec;
X int i;
X
X /* Might need to grow cache. Note that growth increment is exponential:
X ** if lots of classes, don't need to keep realloc'ing so often.
X */
X if (classes_num >= classes_max )
X {
X classes_max += (classes_max ? classes_max : INCR_REGISTRY);
X classes_ptr = (ClCacheRec*) XtRealloc((char*)classes_ptr,
X sizeof(ClCacheRec) * classes_max);
X }
X
X /* See if this object has been registered. Compare quarks.
X */
X lowerCaseName = WcLowerCaseCopy( name );
X quark = XrmStringToQuark ( lowerCaseName );
X XtFree ( lowerCaseName );
X
X for (i = 0 ; i < classes_num ; i++ )
X {
X if (classes_ptr[i].quark == quark)
X {
X /* already registered this class */
X if ( allowDuplicateClassPtrReg )
X {
X rec = &classes_ptr[i]; /* overwrite this ClCacheRec */
X goto found_rec;
X }
X sprintf(msg,
X "WcRegisterClassPtr (%s) - Failed \n\
X Problem: Duplicate class registration ignored.",
X name );
X XtWarning( msg );
X return;
X }
X }
X
X rec = &classes_ptr[classes_num++]; /* New ClCacheRec to be filled */
X
Xfound_rec:
X rec->quark = quark;
X rec->class = class;
X rec->name = XtMalloc( strlen(name) + 1 );
X strcpy ( rec->name, name );
X}
X
X/*
X -- Register Class Name
X*******************************************************************************
X This procedure adds a class name to our list of registered
X classes. Note that the class name is effectively case insensitive
X as it is being quarkified. However, one should register the class
X names using the "standard" capitalization (whatever is in the reference
X manual for the widget set) as the name as registered is used for error
X messages.
X
X The registry is primarily used by CvtStringToClassName().
X*/
X
Xvoid WcRegisterClassName ( app, name, class )
X XtAppContext app; /* not used (yet), must be present */
X char* name; /* class name, case insensitive */
X WidgetClass class; /* Xt object class pointer */
X{
X char *lowerCaseName;
X XrmQuark quark;
X ClNameCacheRec *rec;
X int i;
X
X /* Might need to grow cache. Note that growth increment is exponential:
X ** if lots of classes, don't need to keep realloc'ing so often.
X */
X if (cl_nm_num >= cl_nm_max )
X {
X cl_nm_max += (cl_nm_max ? cl_nm_max : INCR_REGISTRY);
X cl_nm_ptr = (ClNameCacheRec*) XtRealloc((char*)cl_nm_ptr,
X sizeof(ClNameCacheRec) * cl_nm_max);
X }
X
X /* See if this object has been registered. Compare quarks.
X */
X lowerCaseName = WcLowerCaseCopy( name );
X quark = XrmStringToQuark ( lowerCaseName );
X XtFree ( lowerCaseName );
X
X for (i = 0 ; i < cl_nm_num ; i++ )
X {
X if (cl_nm_ptr[i].quark == quark)
X {
X /* already registered this class */
X if ( allowDuplicateClassNameReg )
X {
X rec = &cl_nm_ptr[i]; /* overwrite this ClNameCacheRec */
X goto found_rec;
X }
X sprintf(msg,
X "WcRegisterClassName (%s) - Failed \n\
X Problem: Duplicate class registration ignored.",
X name );
X XtWarning( msg );
X return;
X }
X }
X
X rec = &cl_nm_ptr[cl_nm_num++]; /* New ClNameCacheRec to be filled */
X
Xfound_rec:
X rec->quark = quark;
X rec->class = class;
X rec->name = XtMalloc( strlen(name) + 1 );
X strcpy ( rec->name, name );
X}
X
X/*
X -- Register constructor
X*******************************************************************************
X This procedure adds constructor procedure/name to our list of registered
X constructors. Note that the name is effectively case insensitive
X as it is being quarkified. However, one should register the
X names using the "standard" capitalization (whatever is in the reference
X manual for the widget set) as the name as registered is used for error
X messages.
X
X Note the constructor is a "Motif Style" widget creation routine,
X commonly called a "confusion function."
X
X The registry is primarily used by CvtStringToConstructor().
X*/
X
Xvoid WcRegisterConstructor ( app, name, constructor )
X XtAppContext app; /* not used (yet), must be present */
X char* name; /* constructor name, case insensitive */
X Widget (*constructor) (); /* pointer to a widget creation routine */
X{
X char *lowerCaseName;
X XrmQuark quark;
X ConCacheRec *rec;
X int i;
X
X /* Might need to grow cache. Note that growth increment is exponential:
X ** if lots of constructors, don't need to keep realloc'ing so often.
X */
X if (constrs_num >= constrs_max )
X {
X constrs_max += (constrs_max ? constrs_max : INCR_REGISTRY);
X constrs_ptr = (ConCacheRec*) XtRealloc((char*)constrs_ptr,
X sizeof(ConCacheRec) * constrs_max);
X }
X
X /* See if this object has been registered. Compare quarks.
X */
X lowerCaseName = WcLowerCaseCopy( name );
X quark = XrmStringToQuark ( lowerCaseName );
X XtFree ( lowerCaseName );
X
X for (i = 0 ; i < constrs_num ; i++ )
X {
X if (constrs_ptr[i].quark == quark)
X {
X /* already registered this class */
X if ( allowDuplicateConstructorReg )
X {
X rec = &constrs_ptr[i]; /* overwrite this ConCacheRec */
X goto found_rec;
X }
X sprintf(msg,
X "WcRegisterConstructor (%s) - Failed \n\
X Problem: Duplicate constructor registration ignored.",
X name );
X XtWarning( msg );
X return;
X }
X }
X
X rec = &constrs_ptr[constrs_num++]; /* New ClCacheRec to be filled */
X
Xfound_rec:
X rec->quark = quark;
X rec->constructor = constructor;
X rec->name = XtMalloc( strlen(name) + 1 );
X strcpy ( rec->name, name );
X}
X
X/*
X -- Register Callbacks
X*******************************************************************************
X Register callback functions which can then be bound to widget
X callback lists by the string-to-callback converter
X CvtStringToCallback().
X*/
X
Xvoid WcRegisterCallback ( app, name, callback, closure )
X XtAppContext app; /* not used (yet), must be present */
X String name; /* callback name, case insensitive */
X XtCallbackProc callback; /* callback function pointer */
X caddr_t closure; /* default client data */
X{
X char *lowerCaseName;
X XrmQuark quark;
X CBCacheRec *rec;
X int i;
X
X /* Might need to grow cache. Note that growth increment is exponential:
X ** if lots of constructors, don't need to keep realloc'ing so often.
X */
X if (callbacks_num >= callbacks_max )
X {
X callbacks_max += (callbacks_max ? callbacks_max : INCR_REGISTRY);
X callbacks_ptr = (CBCacheRec*) XtRealloc((char*)callbacks_ptr,
X sizeof(CBCacheRec) * callbacks_max);
X }
X
X /* See if this callback has been registered. Compare quarks.
X */
X lowerCaseName = WcLowerCaseCopy( name );
X quark = XrmStringToQuark ( lowerCaseName );
X XtFree ( lowerCaseName );
X
X for (i = 0 ; i < callbacks_num ; i++ )
X {
X if (callbacks_ptr[i].quark == quark)
X {
X /* already registered this callback */
X if ( allowDuplicateCallbackReg )
X {
X rec = &callbacks_ptr[i]; /* overwrite this CBCacheRec */
X goto found_rec;
X }
X sprintf(msg,
X "WcRegisterCallback (%s) - Failed \n\
X Problem: Duplicate callback registration ignored.",
X name );
X XtWarning( msg );
X return;
X }
X }
X
X rec = &callbacks_ptr[callbacks_num++]; /* New ClCacheRec to be filled */
X
Xfound_rec:
X rec->quark = quark;
X rec->callback = callback;
X rec->closure = closure;
X rec->name = XtMalloc( strlen(name) + 1 );
X strcpy ( rec->name, name );
X}
X
X/*
X -- Register Actions
X*******************************************************************************
X A simple wrapper around XtAppAddActions().
X Register action procs which can then be bound to widget
X actions using standard Xt mechanisms.
X*/
X
Xvoid WcRegisterAction(app, name, proc)
X XtAppContext app;
X String name;
X XtActionProc proc;
X{
X static XtActionsRec action_rec[] = {
X { (String)NULL, (XtActionProc)NULL }
X };
X
X action_rec[0].string = name;
X action_rec[0].proc = proc;
X XtAppAddActions(app, action_rec, 1);
X}
!STUFFY!FUNK!
echo Extracting test_mri
sed >test_mri <<'!STUFFY!FUNK!' -e 's/X//'
X#!/bin/csh
Xalias se setenv XENVIRONMENT
Xalias sa setenv XAPPLRESDIR
X
Xcd Mri
Xif (-e Mri) then
X echo ============= Testing Mri =============
X foreach example (M[0-9][0-9]_*)
X se $example
X Mri
X end
Xendif
Xcd ..
!STUFFY!FUNK!
echo " "
echo "End of kit 26 (of 35)"
cat /dev/null >kit26isdone
run=''
config=''
for iskit in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35; do
if test -f kit${iskit}isdone; then
run="$run $iskit"
else
todo="$todo $iskit"
fi
done
case $todo in
'')
echo "You have run all your kits. Please read README."
for combo in `find . -name '*:AA' -print`; do
if test -f "$combo"; then
realfile=`echo $combo | sed 's/:AA$//'`
cat $realfile:[A-Z][A-Z] >$realfile
rm -rf $realfile:[A-Z][A-Z]
fi
done
rm -rf kit*isdone
chmod ugo+x test*
;;
*) echo "You have run$run."
echo "You still need to run$todo."
;;
esac
: Someone might mail this, so...
exit
--
dan
----------------------------------------------------
O'Reilly && Associates argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list