Path: utzoo!attcan!uunet!abcfd20.larc.nasa.gov!amiga-request From: amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator) Newsgroups: comp.sources.amiga Subject: v90i259: requester.library 1.2 - requester library, Part01/03 Message-ID: Date: 28 Sep 90 18:45:33 GMT Reply-To: Paul-Erik Raue Lines: 1600 Approved: tadguy@uunet.UU.NET (Tad Guy) X-Mail-Submissions-To: amiga@uunet.uu.net X-Post-Discussions-To: comp.sys.amiga Submitted-by: Paul-Erik Raue Posting-number: Volume 90, Issue 259 Archive-name: libraries/reqlib-1.2/part01 [ uuencoded objects, icons, and sample program included ...tad ] [ from the read.me ... ] Req.library adds user-friendliness to the Amiga's user interface. While Intuition does supply requesters, they have certain limitations and are awkward to set up. We designed ours to be quick and easy to set up, as well as adding features. The text requester has PRINTF style formatting built in! There is a colour requester, a very powerful file requester, a string requester (allowing the user to enter a line of text), and an integer requester (allowing the user to enter an integer number). There are also low-level support routines, such as routines to create any of the Amiga's gadgets, as well as a real-time scroll routine. #!/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 '.info.uu' <<'END_OF_FILE' Xbegin 666 .info XK\TP`$@``$0T```-]```&!U-H;W=/9F9297$*'ShowOffReq.uu' <<'END_OF_FILE' Xbegin 666 ShowOffReq.info XMXQ```0`````!'``8`#(`%0`%``,``0`C?=``````````````````````````I XM`````R,``````````````1@````-```````````````````````R`!4``@`!6 XMK6@#`````````````````````````````!____``````&```,``````8```PU XM`````!@#@#``````&!_P,``````8_'XP`````!@?\#``````&`.`,``````8> XM```P`````!@``#`````'G___\\````X`````X```'______P````````````( XM`#_____DF```/______X````````````````````````````````````````K XM``````!____\`````&````P`````9___S`````!F``#,`````&8#@,P`````] XM9AQPS`````!FX`[,`````&8<<,P`````9@.`S`````!F``#,````#^?__\_@F XM```?X```#_```#______^```?______\``#_______[``/_______\``____8 X=___^P`#_______X```````````````````````#_T X`` Xend Xsize 434 END_OF_FILE if test 652 -ne `wc -c <'ShowOffReq.uu'`; then echo shar: \"'ShowOffReq.uu'\" unpacked with wrong size! fi # end of 'ShowOffReq.uu' fi if test -f 'areqglue.o.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'areqglue.o.uu'\" else echo shar: Extracting \"'areqglue.o.uu'\" \(1794 characters\) sed "s/^X//" >'areqglue.o.uu' <<'END_OF_FILE' Xbegin 666 areqglue.o XM04H``````````````F0````````````?````"0"S`3D!.<``'R!O``1,[P`#P XM``A(>/_B8``?`;Y,[P`#``1(>/_<8``!L!M(YS@R3.\`!P`<+&W0`G``'TZN= XM_]9,WTP<3G5(YS@R3.\5``<`'"QMT`)P`!].KO_03-],'$YU2.!__K&```5P@+P`$2'C_IF``'P%03 XM(&\`!$AX_T!@``%$2.<=.#(@;P`<3.\`#P`@+&W0`G``'TZN_Z!,WTP<3G5(U XMYS@R3.\;!P``'$SO``<`*"QMT`)P`!].KO^:3-],'$YU2./^"8```RB!O'P`$3.\``P`(2'C_?&```+@?(&\`!$SO``,`"$AX\ XM_W9@`!\`IDCG.#),[PL``!Q,[P`#$P`H+&W0`G``'TZN_W!,WTP<3G5(YS@RB XM3.\;#P``'$SO``\`+"QMT`)P`!].KO]J3-],'$YU2./]28!@@;Q\`!$AX_TQ@#DSO``,`# XM!"!O'P`,2'C_1DAZ`!HO+P`$+TX3``@L;=`"<``?+P`@#M&O``0@'TYU+%]./ XM=1\@($]K("``0V%N8V5L`%)E'W-U;64``"!O``1#[P`(8!8?(&\`!$/O``A(; XMYR`X1?K_TA]'^O_58`I(YR`XE_``N*$]T%D)<4_``N3-\'1E;F1E9$-OH XM;&]R4F5Q=65S=&5R``((`(Q?1')A=T)O>``""`"H7TUA:V5"=71T;VX``@@`. XMQE]-86ME4V-R;VQL0F%R``((`.)?4'5R9V5&:6QE'customizefi.uu' <<'END_OF_FILE' Xbegin 666 customizefile XM```#\P`````````#``````````(````6````!0````$```/I````%BQX``1#$ XM^0````AP`$ZN_=@CP`````!G*")`0?H`)B`(('S___^L3J[^7"/`````!'#_0 XM3J[^MG(!X:D@`4ZN_L).=3%\`!0`&@"H```!@``>(GD````$3M$```/L````< XM!`````$````&````$@```"P```!2`````````_(```/J````!0``````````" X<'customizefile.asm' <<'END_OF_FILE' X X; Written by Bruce Dawson, Copyright (c) 1989. X; X; This program and source may be freely distributed as long as X; credit to the original author is left in the source and documentation X; accompanying the executable. This program may be modified for your own X; purposes. X; X; X; This program is designed to an example of how you can customize X; the req.library file requester (or any of the other requesters) to suit X; your own personal tastes. This program is designed to be used by people X; who USE programs that use the file requester, not people who WRITE X; programs that use the file requester. This program patches into all calls X; to the file requester and modifies the requester structure, without X; telling the calling program. X; Note that this program opens the requester library but never X; closes it. This is necessary if the patch is to stay in effect. This X; does, however, mean that the requester library can not be flushed out of X; memory. In addition, this program must stay in memory forever. To X; conserve memory, it would be wise to run this program with as small a X; stack as possible. X; This technique of patching the requester library could be used to X; patch other functions in the requester library also. Have fun customizing X; your system, while still using a 'standard' file requester. X X X include "libraries/reqbase.i" X X XSYS MACRO X XREF _LVO\1 X JSR _LVO\1(A6) X ENDM X X dseg X_ReqBase DC.L 0 XOldLocation DC.L 0 Xreqname DC.B "req.library",0 X cseg X X X X MOVE.L 4,A6 ;Load SysBase. X LEA reqname,A1 X MOVEQ #0,D0 X SYS OpenLibrary X MOVE.L D0,_ReqBase X BEQ ErrorOpeningReqBase X X MOVE.L D0,A1 X LEA FileRequesterPatchFunction,A0 X MOVE.L A0,D0 X MOVE.L #_LVOFileRequester,A0 X SYS SetFunction X MOVE.L D0,OldLocation X X MOVEQ #-1,D0 X SYS AllocSignal ;Allocate any signal. X X MOVEQ #1,D1 X LSL.L D0,D1 X MOVE.L D1,D0 X SYS Wait ;Wait for a signal that will never come. X XErrorOpeningReqBase X RTS X X X X X XFileRequesterPatchFunction X; Here is where you adjust the file requester structure to suit your X; own particular tastes. Examples of things that you can safely adjust are X; the color fields (dirnamescolor, devicenamescolor etc.), the numcolumns X; and numlines fields. Most of the flags can safely be set from here, the X; exceptions being the EXTSELECT and CACHING flags, because if the calling X; program doesn't have the necessary code to deal with these (processing the X; extra files and purging buffers left by both flags) then some memory may X; not get freed up. These two flags can be safely cleared though, if you X; don't want extended select or caching. I believe all of the other flags X; can safely be set or cleared or set. X X ;If you like a particular width of file requester. X MOVE.W #20,frq_numcolumns(A0) X X ;If you want the cache to be purged whenever the directory X ;modification date changes and if you don't want half read X ;directories to get cached. X OR.L #FRQCACHEPURGEM!FRQNOHALFCACHEM,frq_Flags(A0) X MOVE.L OldLocation,A1 X JMP (A1) X X X END_OF_FILE if test 3099 -ne `wc -c <'customizefile.asm'`; then echo shar: \"'customizefile.asm'\" unpacked with wrong size! fi # end of 'customizefile.asm' fi if test -f 'lreqglue.o.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'lreqglue.o.uu'\" else echo shar: Extracting \"'lreqglue.o.uu'\" \(2034 characters\) sed "s/^X//" >'lreqglue.o.uu' <<'END_OF_FILE' Xbegin 666 lreqglue.o XM```#YP````````/H`````2````````/I````HB!O``1,[P`#``A(>/_B8``!? XMUDSO``,`!$AX_]Q@``'(2.0````!.KO_*3-],\ XM'$YU(&\`!$AX_ZQ@``%N("\`!$AX_Z9@``%B(&\`!$AX_T!@``%62.0````!.KO^@3-],'$YU2./^(8```YDSO`P$`!,&(2'C_@F```-8@;P`$3.\``P`(2'C_# XM?&```,0@;P`$3.\``P`(2'C_=F```+)(YS@R3.\+```<3.\``P`H+'D`````& XM3J[_<$S?3!Q.=4CG.#),[P\``!Q,[P`/`"PL>0````!.KO]J3-],'$YU2./]88"8@;P`$2'C_4F`<(&\`!$AX_TQ@B XM$DSO``,`!"!O``Q(>/]&8````DAY```"!B\O``0O3@`(+'D`````+P`@#M&O( XM``0@'TYU+%].=2`@3VL@(`!#86YC96P`4F5S=6UE```@;P`$0^\`"&`:(&\`; XM!$/O``A@```"2.<@.$7Z_\Y'^O_18`I(YR`XE@````````#[P$```)?0V5N=&5R```````!```"" XM2G5M<$ET``````'F`0```E]39713:7IE````$@$```-?4V5T3&]C871I;VX`# XM```@`0``!%]296%D3&]C871I;VX````````Z`0```E]&;W)M870`````5`$`3 XM``1?1FEL95)E<75E@$```9?17AT96YD961#;VQO'macros.i' <<'END_OF_FILE' X;------------------------------------------------------ X X; This is a REALLY handly macro, that allows you to pop up messages at debugging X;points in your code. This was necessary to allow working on a multithreaded X; program, since you don't have a way of tracing the new threads. X X; If you don't define 'Debug', then this macro assembles to nothing, otherwise X;you get the requester. X; X; If you wish to display multiple paramters, simply push them on the stack X;IN REVERSE ORDER of how you wish to display them, then put the stack pointer in X;A1 X X; To use this macro, you MUST link with lreqglue.o or areqglue.o. X; X X; MOVE.L Val2,-(SP) X; MOVE.W Val1,-(SP) X; MOVE.L String,-(SP) X; MOVE.L SP,A1 X; showf <%s is a string, Val1: %d is a word, Val2: %ld is a long.> X; LEA 10(SP),SP X Xshowf MACRO X IFD Debug X X IFD .A68K X MOVEM.L D0-A6,-(SP) X LEA \\@showftext,A0 X CALL SimpleRequest X BRA \\@around X X\\@showftext DC.B "\1",0 X EVEN X\\@around X MOVEM.L (SP)+,D0-A6 X ENDC X X IFND .A68K X MOVEM.L D0-A6,-(SP) X LEA \@showftext,A0 X CALL SimpleRequest X BRA \@around X X\@showftext DC.B "\1",0 X EVEN X\@around X MOVEM.L (SP)+,D0-A6 X ENDC X X ENDC X ENDM X X; The reason for two definitions is the difference between A68K (the PD X;assembler),which allows named local labels, and the Aztec assembler which X;doesn't. X; If you have a local label, and then this macro, and then a reference to that X;local variable, then under the Aztec version you would get an error, because X;the showf version (under Aztec) uses GLOBAL labels, which break up locals. X; That means that if you wish to use this macro while under Aztec, you can't use X;local labels in the same function. X X;------------------------------------------------------------------------- X XCALL MACRO X public \1 X JSR \1 X ENDM X XLOADLIB MACRO X MOVE.L _\1Base,A6 X ENDM X XSYS MACRO X XREF _LVO\1 X JSR _LVO\1(A6) X ENDM X XPUSH MACRO X MOVEM.L \1,-(SP) X ENDM X XPULL MACRO X MOVEM.L (SP)+,\1 X ENDM X XAllRegs REG D0-A6 X END_OF_FILE if test 1927 -ne `wc -c <'macros.i'`; then echo shar: \"'macros.i'\" unpacked with wrong size! fi # end of 'macros.i' fi if test -f 'read.me' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'read.me'\" else echo shar: Extracting \"'read.me'\" \(5233 characters\) sed "s/^X//" >'read.me' <<'END_OF_FILE' X X X============================================================================= XOfficial release of version 1.2, October '89 X X XReq.library is Copyright (c)1989, 1990 by C.W. Fox and Bruce Dawson. It is Xfreely distributable. No charge may be made for it's distribution, except Xfor a nominal media fee. X X Feel free to distribute and use this library with your programs, along Xwith a notice that the library is 'FreeWare'. X X============================================================================= X X Hello! This is the introduction to the all-new "req.library"! X X What is it? X X Req.library adds user-friendliness to the Amiga's user interface. XWhile Intuition does supply requesters, they have certain limitations and Xare awkward to set up. We designed ours to be quick and easy to set up, as Xwell as adding features. The text requester has PRINTF style formatting Xbuilt in! There is a colour requester, a very powerful file requester, a Xstring requester (allowing the user to enter a line of text), and an Xinteger requester (allowing the user to enter an integer number). There Xare also low-level support routines, such as routines to create any of the XAmiga's gadgets, as well as a real-time scroll routine. X X The nice thing about the gadget creation routines, is that they allow Xyou to create gadgets from parameters, meaning that you can allocate memory Xand have your gadgets constructed there. This allows you to use gadgets in Xcode that is meant to be re-entrant. This normally wouldn't be possible Xwith gadgets. The size necessary for each gadget has been defined, and you Xwill find the definitions in reqbase.i and reqbase.h. X X (Please see req.doc for a more comprehensive explanation). X X Here is an overview of the files included in this ZOO archive: X X areqglue.o Gluecode for Aztec C. Link in with your programs. X lreqglue.o Gluecode for Lattice C. Link in with your programs. X reqglue.asm Sourcecode for the gluecode. X customizefile.asm How to customize the file requester. X customizefile The executable of the file requester customizer. X reqbase.h The C include file. Put it in include/libraries X reqbase.i The asm include file. Put it in include/libraries X showoffreq.c The C source code for the req demo program. X showoffreq The req demo executable. X req.library The actual library. This goes in libs: X reqproto.h The prototype file for Lattice C X req.doc The instructions and calling conventions. X read.me This file X macros.i Some handy macros. X X----------------------------------------------------------------------------- X Included is a demo program called Showoffreq, which opens a screen with Xtext gadgets in it, one per requester. If you wish to experiment with the Xrequesters, this might be a good place to start. X X XTo compile showoffreq.c under Lattice, use: X X lc -Lcd+lib:lreqglue.o showoffreq X X X X XTo compile showoffreq.c under Aztec, use: X X cc -o o/showoffreq.o showoffreq.c X X ln -w +Q -o showoffreq o/showoffreq.o lib:areqglue.o -lc X X----------------------------------------------------------------------------- X X For Assembly X X----------------------------------------------------------------------------- X X To use req.library from assembly language is quite easy. So far, Xnothing's been said about it, so here is some info. X X First of all, the library is EXACTLY like system libraries; you open Xit, call functions, and then close it. We've included some macros that may Xmake working with it a bit easier. All you have to include to actually use Xthe req.library is reqbase.i. This contains all the function offsets. You Xmay wish to call the functions directly, or use a bit of gluecode to make Xthings even easier. If you wish to do it all yourself, then all you've got Xto do is include reqbase.i. If you wish to use some pre-made function Xsetup, then you have to link with the appropriate reqglue.o (lreqglue.o for XLattice, and areqglue.o for Aztec). X X X X X X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ X X To link with lreqglue.o (for Lattice), an example linkfile might look like Xthis: X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X XFROM Xlib:startup.o Xobj/file1.o Xobj/file2.o Xobj/data.o Xobj/menus.o X XLIB Xlib:amiga.lib (or lib:lvo.lib if you have it) Xlib:lreqglue.o X XTO Xfile X Xnodebug smallcode smalldata X XBATCH X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xand to use this linkfile, just say: X X blink with X X X X X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ X XTo link with areqglue.o (for Aztec), and example linkfile might look like this: X X X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xln -w +Q -o file1 o/file1.o lib:areqglue.o -lc X X---cut here---cut here---cut here---cut here---cut here---cut here---cut here X Xand to use this linkfile, just say: X X ln -f X X END_OF_FILE if test 5233 -ne `wc -c <'read.me'`; then echo shar: \"'read.me'\" unpacked with wrong size! fi # end of 'read.me' fi if test -f 'read.me.uu' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'read.me.uu'\" else echo shar: Extracting \"'read.me.uu'\" \(3646 characters\) sed "s/^X//" >'read.me.uu' <<'END_OF_FILE' Xbegin 666 read.me.info XMXQ```0``````BP`3`&(`'0`&``,``0`DRN``),KX````````````````````/ XM````!```)+S8`````````(<````(``````````````````````!B`!T``P`!. XM?<#_`````````````````````````````````$5555550```````````15_5. XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3 XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<5Y>7U'``````````!%!4%!% XM04<``````````$5555551P``````````1555555'``````````!%555554<`H XM`````````$5555551P``````````15550`%'``````````!%555554<`````W XM````````````!P``````````+_______```````````55555554`````````O XM```````````````````!_______X``````````'_______@``````````?_P8 XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?& XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G XM```````!_______[P`````````'_______O``````````?X#SX__^\``````( XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____= XM___[P`````````'_______O``````````?______^\`````````!_______[> XMP`````````'_______O``````````?______^\`````````!_______[P```E XM``````'_______O``````````?@``````\``````````________P```````M XM``!________`````````````````````````````````````````````````Z XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````&(`'0`#``&"B/\`````````````````````````, XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6 XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#; XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4 XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^ XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N XM`'req.doc.uu' <<'END_OF_FILE' Xbegin 666 req.doc.info XMXQ```0``````&P`3`&(`'0`&``,``0`DB6@`)+4(````````````````````A XM````!```))=0`````````!<````(``````````````````````!B`!T``P`!Q XM=##_`````````````````````````````````$5555550```````````15_5U XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3 XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<5Y>7U'``````````!%!4%!% XM04<``````````$5555551P``````````1555555'``````````!%555554<`H XM`````````$5555551P``````````15550`%'``````````!%555554<`````W XM````````````!P``````````+_______```````````55555554`````````O XM```````````````````!_______X``````````'_______@``````````?_P8 XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?& XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G XM```````!_______[P`````````'_______O``````````?X#SX__^\``````( XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____= XM___[P`````````'_______O``````````?______^\`````````!_______[> XMP`````````'_______O``````````?______^\`````````!_______[P```E XM``````'_______O``````````?@``````\``````````________P```````M XM``!________`````````````````````````````````````````````````Z XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM````````````````````````````````````````````````````````````` XM`````````````````````&(`'0`#``%X^/\`````````````````````````R XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6 XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#; XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4 XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^ XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N XM`'req.h' <<'END_OF_FILE' X/* Prototypes for the req.library for use with Lattice. */ X X#ifndef __NOPROTO X#ifndef __PROTO X#define __PROTO(a) a X#endif X#else X#ifndef __PROTO X#define __PROTO(a) () X#endif X#endif X X Xvoid __stdargs SimpleRequest __PROTO((char *,...)); Xint __stdargs TwoGadRequest __PROTO((char *,...)); Xint __stdargs FileRequester __PROTO((struct FileRequester *)); Xvoid __stdargs Center __PROTO((struct NewWindow *,int,int)); Xvoid __stdargs PurgeFiles __PROTO((struct FileRequester *)); Xvoid __stdargs ColorRequester __PROTO((long)); Xint __stdargs TextRequest __PROTO((struct TRStructure *)); Xchar __stdargs RawKeyToAscii __PROTO((short,short,char *)); X END_OF_FILE if test 646 -ne `wc -c <'req.h'`; then echo shar: \"'req.h'\" unpacked with wrong size! fi # end of 'req.h' fi if test -f 'reqbase.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'reqbase.h'\" else echo shar: Extracting \"'reqbase.h'\" \(13008 characters\) sed "s/^X//" >'reqbase.h' <<'END_OF_FILE' X X/* reqlibrary.h (c) 1988/1989 reserved by Colin Fox and Bruce Dawson */ X X#ifndef REQLIBRARY_H X#define REQLIBRARY_H X X#define REQVERSION 1 X X X#define NUMPAIRS 10 X Xstruct GadgetBlock X { X struct Gadget Gadget; X struct Border Border; X WORD Pairs[NUMPAIRS]; X struct IntuiText Text; X }; X Xstruct StringBlock X { X struct Gadget Gadget; X struct StringInfo Info; X struct Border Border; X WORD Pairs[NUMPAIRS]; X }; X Xstruct PropBlock X { X struct Gadget Gadget; X struct PropInfo Info; X struct Image Image; X }; X Xstruct ScrollBlock X { X struct Gadget ArrowUpLt; X struct Image ImageUpLt; X struct Gadget ArrowDnRt; X struct Image ImageDnRt; X struct PropBlock Prop; X }; X Xstruct TwoImageGadget X { X struct Gadget Gadget; X struct Image Image1; X struct Image Image2; X }; X X#define ATTITUDEB 16 X X#define HORIZSLIDER (0L<