home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / newlibs / reqtools.lha / ReqTools / README < prev    next >
Text File  |  1993-02-15  |  39KB  |  741 lines

  1.  
  2.                       **********************************
  3.  
  4.                           reqtools.library
  5.  
  6.                           The requester toolkit.
  7.  
  8.                           Release 2.1d
  9.  
  10.                           (c) 1991-1993 Nico François
  11.  
  12.                       **********************************
  13.  
  14.  
  15.    First of all read the DISTRIBUTION file for information on... er well...
  16. distribution :-)
  17.  
  18.    If you have suggestions or remarks about ReqTools, or if you find any
  19. bugs, please let me know.
  20.  
  21.    Contacting the author:
  22.  
  23.      Fido:  2:292/603.10 (Nico Francois)
  24.  
  25.      UUCP:  Nico.Francois@p10.f603.n292.z2.FidoNet.Org
  26.  
  27.      Mail:  Nico François
  28.             Corbielaan 13
  29.             B-3060 Bertem
  30.             BELGIUM
  31.  
  32.    If you can please use e-mail.  That way you'll stand a much better chance
  33. of getting a reply quickly.
  34.  
  35.  
  36. Contents
  37. ========
  38.  
  39. 1. Introduction
  40.  
  41. 2. Features
  42.  
  43. 3. Installation
  44.  
  45. 4. Using reqtools.library
  46.  
  47.  
  48. 1. Introduction
  49. ===============
  50.  
  51.     reqtools.library is a standard Amiga shared, runtime library.  The purpose
  52. of ReqTools is to make it a lot quicker and easier to build standard requesters
  53. into your programs.  ReqTools is designed with Commodore's style guidelines in
  54. mind, all requesters have the look-and-feel of AmigaDOS Release 2.
  55.  
  56.     If you use ReqTools in your programs you do not have to worry about
  57. requesters too much.  You'll have a lot more time to concentrate on the
  58. really important stuff your program does.
  59.  
  60.     The library has been inspired by req.library (by Colin Fox & Bruce Dawson)
  61. and Commodore's own asl.library.  You will find it shares a lot of the
  62. features with these two libraries, while it has some additional ones as well.
  63. While asl.library was great in look-and-feel I felt it lacked quite a bit in
  64. the power department.  This power _is_ mostly available in req.library, but
  65. this doesn't fit in too well with AmigaDOS Release 2.  So the idea for a new
  66. requester library was born.
  67.  
  68.     I tried to make all requesters in ReqTools very powerful, easy to use and 
  69. with a very nice new-look 3D interface.  Efficiency was also considered very
  70. important.  The 2.0 version of the library is about 38K large.  I'm sure you
  71. will agree this is not too much considering what ReqTools offers.
  72.  
  73.     ReqTools features the following requesters:  a query requester, a string
  74. requester, a number requester, a file requester, a font requester, a palette
  75. requester and new in release 2.0 of ReqTools a volume requester and a screen
  76. mode requester.
  77.  
  78.  
  79. 2. Features
  80. ===========
  81.  
  82.    The requesters have following features (features marked with *NEW* are new
  83. features for release 2.0, version 38 of ReqTools).
  84.  
  85.    All requesters:
  86.  
  87.       o have a pixel-perfect Workbench 2.0 3D look, also on Kickstart 1.3.
  88. *NEW* o Completely localized!  If you are using Workbench 2.1 or higher the
  89.         text in ReqTools requesters will appear in the language of your
  90.         Workbench (if the catalog for this language is available).
  91.       o adjust to interlaced screens and to the screen's font (rtEZRequest,
  92.         rtGetLong, rtGetString) or to any fixed-width font if the screen's
  93.         font is proportional (rtPaletteRequest/rtFileRequest/rtFontRequest).
  94. *NEW*   Requesters can also use any suitable font you specify.
  95.       o can appear under the mouse pointer, centered on the
  96.         screen/in a window or at the top left of the screen/a window.
  97.       o can be used asynchronously.
  98.       o check pr_WindowPtr of your process is to find the screen they should
  99.         appear on (can be overridden).
  100.       o use tags for maximum future extendibility.  All standard 2.0 tags are
  101.         supported (like TAG_SKIP, TAG_MORE, etc.).
  102.       o bring the screen they appear on to the front.  The screen that was
  103.         in front previously will be put in front again when the requester
  104.         finishes (if it is still open).
  105. *NEW*   This behaviour can be switched off.
  106.       o will always appear in the visible portion of the screen (support of
  107.         virtual screens).
  108.       o are extensively tested using enforcer and mungwall debugging tools.
  109. *NEW* o have the ability to lock the parent window from all user input and
  110.         give it a standard wait pointer automatically.
  111. *NEW* o can share the IDCMP port of the parent window.
  112. *NEW* o supports a callback hook for handling IDCMP messages from a shared
  113.         IDCMP port.
  114. *NEW* o have keyboard shortcuts for gadgets (key underlined in gadget label).
  115.         Use Right Amiga key with shortcut if a string gadget is active.
  116.  
  117.    rtEZRequest, the query requester:
  118.  
  119.       o easy keyboard shortcuts:
  120.         - Left Amiga V and Left Amiga B (like the standard requesters).
  121.         - Y for positive response.
  122.         - N, R, Esc for negative response.
  123.         - Return can also be used as a shortcut and can be
  124.           associated with any response.  The gadget in question
  125.           will have its text printed bold.
  126.           Default response for Return is the positive response.
  127.         - buttons give visual feedback when keyboard shortcuts
  128.           are used.
  129.         - keyboard shortcuts can be canceled by pressing Shift
  130.           before releasing the key.
  131. *NEW*   - keyboard shortcuts can be defined to be any character in the
  132.           button's label.  The character in question will be underlined.
  133.       o number of responses only limited by screen width.
  134.       o allows for multiple lines of text.
  135.       o text can be centered in requester (great for about requesters).
  136.       o supports the use of 'printf' formatting codes in text
  137.         and in responses.
  138.       o can be terminated by IDCMP events.
  139.  
  140.    rtFileRequest, the file requester:
  141.  
  142.       o similar in use and look-and-feel as Asl file requester.
  143.       o buffers directories in memory.
  144.       o files and directories can be added or removed from the buffer
  145.         by the calling program.
  146.       o can be put in save mode, disabling double-clicks and asking you if
  147.         directories that can't be found (entered manually) should be created.
  148.       o optional callback hook for verification of files before they are
  149.         added to the buffer.
  150.       o supports multiple selection of files and optionally of directories.
  151.       o when multi-select is on All, Clear and Match.. buttons are available.
  152.         All selects, and Clear unselects all files.  Match.. brings up a
  153.         requester where the user can enter a pattern to select files.
  154.       o can be used as a directory requester (showing no files).
  155.       o optional pattern gadget to match files on.
  156.       o shows all devices (with volume names) and all assigns made.
  157.       o supports TABCYCLE under 2.0
  158.       o pattern matching supports _ALL_ AmigaDOS 2.0 patterns.
  159. *NEW* o can be used as a volume requester to get a device or an assign
  160.         from the user.
  161. *NEW* o can be resized in height to show more files.
  162. *NEW* o Shows disk percentage used next to volume names.
  163. *NEW* o Allows you to enter paths in the filename string gadget.  If the
  164.         requester finds a path in the filename it will change the directory
  165.         to that path.  So if you e.g. enter 'Devs:mountlist' in the filename
  166.         gadget the requester will read the 'Devs:' directory and set the
  167.         filename gadget to 'mountlist'.  If you enter 'printers/' it will go
  168.         into the printers directory. Enter '/' to go to the parent directory.
  169. *NEW* o Completely keyboard controlable: use up and down cursor keys to
  170.         select files or directories.  Use Shift-Up and Shift-Down to jump
  171.         by one window-full.  Use Ctrl-Up and Ctrl-Down to jump to the start
  172.         or end of the directory.
  173.  
  174.    rtFontRequest, the font requester:
  175.  
  176.       o buffers all fonts in memory.
  177.       o shows sample of font you click on.
  178.       o can be also be used to select the font's style.
  179.       o supports color fonts, can change the screen's palette.
  180.       o supports scaled fonts (AmigaOS Release 2 only).
  181.       o optional callback hook for verification of fonts before they are
  182.         added to the buffer.
  183.       o supports TABCYCLE under 2.0
  184. *NEW* o can be resized in height to show more fonts.
  185. *NEW* o makes sure selected font is visible in listview when it comes up.
  186.  
  187. *NEW* rtScreenModeRequest, the display mode requester (Kickstart 2.0+ only!):
  188.  
  189. *NEW* o all modes in the DisplayInfo database can be displayed.
  190. *NEW* o allows you to pick a standard overscan setting.
  191. *NEW* o user may enter prefered size or choose to get the defaults.
  192. *NEW* o number of colors selectable.
  193. *NEW* o can be put up with the attributes from a given screen.
  194. *NEW* o optional callback hook for examining a display mode before it is
  195.         added to the requester.
  196. *NEW* o can be resized in height to show more modes.
  197. *NEW* o makes sure selected mode is visible in listview when it comes up.
  198.  
  199.    rtPaletteRequest, the palette requester:
  200.  
  201.       o features Copy, Swap and Spread functions.
  202.       o current values of red, green and blue are displayed.
  203.       o returns the selected color.
  204.  
  205.    rtGetLong, the long integer requester:
  206.  
  207.       o width of requester can be set by caller.
  208.       o a minimum and maximum can be supplied and will be displayed
  209.         in the requester.
  210.       o a value to show up when the requester appears can be supplied.
  211. *NEW* o can display buttons with several possible responses.
  212. *NEW* o invisible entry is possible (useful for getting a code number).
  213. *NEW* o patterned backfill of requester can be switched on or off.
  214. *NEW* o some line(s) of (centered) text may be displayed above the entry
  215.         gadget to give the user some extra information.
  216.  
  217.    rtGetString, the string requester:
  218.  
  219.       o width of requester can be set by caller.
  220.       o a string to show up when the requester appears can be supplied.
  221. *NEW* o can display buttons with several possible responses.
  222. *NEW* o invisible entry is possible (useful for getting a password).
  223. *NEW* o patterned backfill of requester can be switched on or off.
  224. *NEW* o some line(s) of (centered) text may be displayed above the entry
  225.         gadget to give the user some extra information.
  226.  
  227.  
  228. 3. Installation
  229. ===============
  230.  
  231.    To install reqtools.library copy it to your Libs: directory by hand, or
  232. run the installation script 'Install' (by using 'Execute' from the Shell or
  233. by double-clicking its icon).
  234.  
  235.    reqtools.library is provided in two versions (that are 100% equivalent,
  236. meaning you don't have to care which version the user installed):  one for
  237. Kickstart 1.2 (or higher) and one for Kickstart 2.0 and higher.
  238.  
  239.    The version for Kickstart 2.0 uses 2.0 ROM functions for stuff like
  240. pattern matching, parsing tags, the 3D look, while a lot in the Kickstart 1.3
  241. version is emulated.  It issuggested you use the 2.0 version of the library if
  242. you have Kickstart 2.0 in ROM.
  243.  
  244.    If you are running Workbench 2.1 or higher you will have the possiblity to
  245. use ReqTools in different languages.  Just use the appropriate install script
  246. in the Install/Workbench_2.1+ directory.
  247.  
  248.  
  249. 4. Using reqtools.library
  250. =========================
  251.  
  252.    If you are a C programmer all you need to do is include the correct
  253. header ('libraries/reqtool.h') and open reqtools.library. After that you can
  254. use the functions in the library as if they were C functions. If your program
  255. quits it must of course close the library again. See 'demo.c' for an example.
  256.  
  257.    Glue code for several compilers/languages is included with ReqTools 2.1.
  258. Look in the Glue directory of the ReqTools distribution to see if glue code
  259. exists for your compiler and/or programming language.  If it doesn't and you
  260. write your own please send it to me and I'll include it in the next release
  261. of ReqTools.
  262.     Note that the source for the Manx C libraries is the same as for the SAS/C
  263. libraries.  See the README.Manx file in the archive
  264. 'Glue/Sas-C/LibSource.lha'.
  265.    Manx C users may have to edit 'libraries/reqtools.h' and change the library
  266. (GfxBase, IntuitionBase, etc.) fields to rt_GfxBase, rt_IntuitionBase etc.
  267. Seems there is a bug in some versions of the Manx C compiler that has problems
  268. otherwise.  Let's hope this gets fixed soon :-)
  269.  
  270.    Functions allowing a variable number of arguments can't be called using
  271. pragmas (in-line library calls, no glue code required).  So if you use these
  272. you must always link with LIB:reqtools.lib or LIB:reqtoolsnb.lib (for SAS-C,
  273. or with the specific libraries for your compiler/language).
  274.  
  275.    Assembly programmers should also include the correct files and open
  276. reqtools.library.  To call a function they must load A6 with the library base,
  277. put the arguments in the appropriate registers and jump to the library vector
  278. offset of the function they want to call.
  279.  
  280.    Remember to open the library with a specific version number if you wish to
  281. use features only found in that version (for example: screen mode requester).
  282.  
  283.    All library functions are explained in the autodoc file 'reqtools.doc'.
  284.  
  285.                                                        Enjoy.
  286.  
  287.  
  288.                                LIBRARY HISTORY:
  289.  
  290. *****************************************************************************
  291. RELEASE 1.0 (Library version 37.556 [1.3] - 37.670 [2.0])
  292.  
  293.     First release.
  294.  
  295. *****************************************************************************
  296. RELEASE 1.0a (Library version 37.557 [1.3] - 37.673 [2.0])
  297.  
  298.     Fixed two minor bugs:
  299.       - if a directory could not be found and you re-invoked the file
  300.         requester it wouldn't check the directory again.
  301.       - devices like PRT:, CON:, etc. now no longer show up in the device
  302.         list of the 2.0 file requester.
  303.  
  304. *****************************************************************************
  305. RELEASE 1.0b (Library version 37.566 [1.3] - 37.678 [2.0])
  306.  
  307.     Fixed bug: entering a pattern when a file requester's directory was
  308.       invalid could cause a crash.
  309.     rtGetString() and rtGetLong() 2.0 requester windows no longer have close
  310.       gadgets.
  311.     Font requester entries are "release verify" instead of "immediate".
  312.     If no minimum or maximum is given for the GetLong requester it will not
  313.       be displayed (1.0 and 1.0a displayed MAXINT or MININT).
  314.     Minor cosmetic adjustments to file, font and palette requesters.
  315.     Oberon interface to the library included.
  316.  
  317. *****************************************************************************
  318. RELEASE 1.0c (Library version 37.592 [1.3] - 37.718 [2.0])
  319.  
  320.     Boopsi dispatch function for rtEZRequestA() buttons optimized (ReqTools
  321.       for Kickstart 2.0).  Occasional flicker just about eliminated.
  322.     Enlarged buttons a bit in rtGetLongA(), rtGetStringA() and the file, font
  323.       and palette requesters.
  324.     Width of scroller gadget in file requester window increased.
  325.     File string gadget is cleared when 'All' or 'Match..' is used.  This
  326.       wasn't done before and could result in unexpected multi-select results.
  327.     Visual feedback for keyboard shortcuts improved (rtEZRequestA()).  Button
  328.       stays depressed as long as the key in question is held down, but still
  329.       for a minumum of 1/10 sec.  New feature:  shortcuts can be canceled by
  330.       pressing Shift before releasing the key.
  331.     Minor bug fix: keyboard shortcuts V and B now really only work together
  332.       with the Left Amiga key.  Used to work without the qualifier.
  333.     rtEZRequestA(), rtGetLongA() and rtGetStringA() will no longer call the
  334.       DOS function Delay(), so they may from now on be called by tasks.
  335.       Every ReqTools requester, except the file and font requesters (they use
  336.       DOS for obvious reasons), can be called from a task.
  337.     EZRequest with only one button now responds to the Return key, whether
  338.       EZREQF_NORETURNKEY is set or not.
  339.     Fixed small bug in libraries/reqtools.i include file.  rtfi_Hook and
  340.       rtfo_Hook were followed by a ; and this could lead to problems.
  341.     Libraries (reqtoolss.lib and reqtoolssr.lib) for Dice C included.
  342.     Pre-release (0.91ß) of RTPatch patcher program included.
  343.  
  344. *****************************************************************************
  345. RELEASE 1.0d (Library version 37.600 [1.3] - 37.726 [2.0])
  346.  
  347.     rtEZRequestA(), rtGetStringA() and rtGetLongA() now switch the processor
  348.       stack to ensure sufficient stack space for the function to succeed.
  349.     Fixed bug in rtGetLong() requester in 2.0 version of ReqTools.  Used to
  350.       return TRUE and a random value if the user pressed Ok when the integer
  351.       gadget was empty.
  352.     File requester is somewhat larger by default.
  353.     Improved automatic requester resizing (if requester would become too big
  354.       for the screen).
  355.     File requester (in save mode) no longer asks "Create drawer?" when you
  356.       entered a drawer string containing a non-existing volume (e.g. 'FOO:').
  357.     Entries in file requester are now sorted immediately when you select the
  358.       slider gadget and not when you release it (1.3 version of ReqTools).
  359.     Latest revision of Oberon interface included.
  360.     Modula-2 interface to the library included.
  361.     Manx C interface to the library included.
  362.  
  363. *****************************************************************************
  364. RELEASE 1.0e (Library version 37.600 [1.3] - 37.726 [2.0])
  365.  
  366.     Rearranged directories a bit.  All glue code now in one directory.
  367.     Installation script now uses Commodore's Installer utility.
  368.     Two Modula-2 interfaces to the library are now included, one for M2Sprint
  369.       and one for M2Amiga.
  370.     Some bugs in the Dice C libs have been fixed (thanks to Magnus Holmgren).
  371.     Interface for HiSoft's HighSpeed Pascal included.
  372.  
  373. *****************************************************************************
  374. RELEASE 2.0 (Library version 38.347 [1.3] - 38.693 [2.0])
  375.  
  376.     All requesters now have keyboard shortcuts.
  377.     Kickstart 2.0 version of ReqTools has been localized.  As long as the
  378.       appropriate catalog file exists ReqTools will appear in the user's
  379.       selected langauge.
  380.     New requester: rtScreenModeRequestA().  A screen mode requester. Can be
  381.       used to get a screen mode, size, depth and overscan type from the user.
  382.       This requester is only available on Kickstart 2.0 or higher, but also
  383.       present in the Kickstart 1.3 version of ReqTools.
  384.     File, font and screenmode requesters are now resizable (in height).
  385.     Font, volume and screen mode requesters will now make sure the current
  386.       entry is visible in the listview when the requester first comes up.
  387.     Improved DOWILDFUNC hook interface.  New tag: RTxx_FilterFunc. Old hook
  388.       interface (using req->Hook and FREQF_DOWILDFUNC flag) is still
  389.       supported, but declared obsolete.  Don't use in new code.
  390.     Several new tags:
  391.       o RT_Locale:  specify a locale to be used instead of the default one.
  392.         Ignored if locale.library isn't present in the system or you are
  393.         using the Kickstart 1.3 version of ReqTools.
  394.       o RT_ShareIDCMP and RT_IntuiMsgFunc:  All requesters can now share
  395.         their IDCMP port with the parent window.  A callback hook for
  396.         intuition messages received not concerning the requester can also be
  397.         set using the RT_IntuiMsgFunc tag.
  398.       o RT_LockWindow:  Enables you to make ReqTools lock the parent window
  399.         from all user input and give the window a standard wait pointer.
  400.         After the requester returns the window will be unlocked and will get
  401.         its original pointer back.
  402.       o RT_Underscore:  With this tag it is possible to define keyboard
  403.         shortcuts for buttons.  You can ask ReqTools to underline a character
  404.         in the button's label and use this as a shortcut.
  405.       o for rtGetString() and rtGetLong(): RTGS_GadFmt, RTGS_GadFmtArgs,
  406.         RTGL_GadFmt and RTGL_GadFmtArgs.  With these tags you may give the
  407.         user several ways out of the string/long requester.
  408.       o for rtGetString() and rtGetLong(): RTGS_Invisible and RTGL_Invisible.
  409.         Can be used to switch on invisible typing to get a password or a code
  410.         number from the user.
  411.       o RTGS_TextFmt, RTGL_TextFmt, RTGS_TextFmtArgs and RTGL_TextFmtArgs:
  412.         These tags allow you to supply some line(s) of text that should be
  413.         printed above the string/integer gadget in the rtGetString() or
  414.         rtGetLong() requesters.
  415.       o RTGS_Flags and RTGL_Flags:  Set certain flags for rtGetString() and
  416.         rtGetLong() requesters.  Used to set the GSREQF_CENTERTEXT or
  417.         GLREQF_CENTERTEXT flags.
  418.       o RTGS_BackFill and RTGL_BackFill:  Switch the patterned backfill in
  419.         the rtGetString() and rtGetLong() requesters on or off.
  420.       o RT_ScreenToFront:  Allows you to switch of the default behaviour of
  421.         popping the screen the requester appears on to the front.
  422.       o RT_TextAttr:  Allows you to specify a font a requester should use
  423.         instead of the screen or default font.
  424.       o RTFI_VolumeRequest:  New flavor of file requester: volume requester.
  425.         Allows you to easily get a device/assign from the user.
  426.       o RTFI_AllowEmpty:  Enables you to allow the file requester to accept
  427.         an empty filename.  Normally cancels the requester if no filename
  428.         was entered.
  429.     Changes to file requester:
  430.       o Shows disk percentage used next to volume names.
  431.       o 'Hide .info' cycle gadget gadget in file requester replaced by
  432.         '.info' toggle gadget next to filename string gadget.
  433.       o Will no longer automatically change directories to their full
  434.         pathname.  Will only do so when needed (e.g. parent of an assign).
  435.       o Allows you to enter paths in the filename string gadget.  If the
  436.         requester finds a path in the filename it will change the directory
  437.         to that path.
  438.       o Completely keyboard controlable: use up and down cursor keys to
  439.         select files or directories.  Use Shift-Up and Shift-Down to jump
  440.         by one window-full.
  441.       o 1.3 version has a 2.0-look sizing gadget and bottom border.
  442.       o Changed 'Disks' to 'Volumes'.
  443.       o Changed '(dir)' to 'Drawer' (right justified).
  444.       o Assigns now displayed differently (with 'Assign' right justified).
  445.       o Added an indicator for number of selected files (if multiselect on).
  446.       o No longer shows 'Add', 'Match..' and 'Clear' gadgets if no multi-
  447.         select is possible.
  448.     New library functions:
  449.       o rtLockWindow() and rtUnlockWindow():  easily lock a window from user
  450.         input and give it a standard wait pointer.
  451.       o rtCloseWindowSafely():  close a window with a shared IDCMP port.
  452.     Updated glue code:
  453.       o Oberon interface updated for ReqTools V38.
  454.       o SAS/C, Manx C and Dice glue code updated for ReqTools V38.
  455.       o New HighSpeed Pascal (for ReqTools V38) interface written by
  456.         Gunter Indenhoek included.
  457.     Demo updated to demonstrate new features of ReqTools 2.0.
  458.     Version 1.0 of RTPatch patcher program included.  Patches req.library,
  459.       arp.library and asl.library to use ReqTools requesters instead.
  460.  
  461. *****************************************************************************
  462. RELEASE 2.0a (Library version 38.350 [1.3] - 38.693 [2.0])
  463.  
  464.     Aaaargh!  Just one day after releasing ReqTools 2.0 a MAJOR bug turned
  465.       up in the Kickstart 1.3 version:  rtLockWindow() was broken!!  Only
  466.       turned up when running on 1.3, since on 1.3 there seems to be no return
  467.       value from intuition.library/Request() (So C=, your autodocs have a bug
  468.       in them as well :-).  Bug fixed.
  469.     Fixed broken install script for Workbench 1.3.
  470.  
  471. *****************************************************************************
  472. RELEASE 2.0b (Library version 38.358 [1.3] - 38.803 [2.0])
  473.  
  474.     Installer is no longer distributed with ReqTools. It is copyrighted by
  475.       Commodore and can only be distributed under license. If you have
  476.       Installer (preferably version 2.12 or higher) make sure it is in your
  477.       command path so the install scripts will work. If you don't have
  478.       Installer you'll have to install ReqTools manually, sorry.
  479.     When you use the up/down arrows in the file requester and no file is
  480.       highlighted yet, ReqTools will now highlight the file at the top of
  481.       the visible area (instead of the first file in the list).
  482.     Some small changes in demo, now demonstrates min/max with rtGetLong(),
  483.       return value when RTGS_GadFmt is used and multi-selection in the file
  484.       requester.
  485.     Changed RTGL_BackFill and RTGS_BackFill tags to use the same spelling as
  486.       WA_BackFill in intuition.h (with a capital F).  Be sure to install the
  487.       new include files.
  488.     Install scripts for Workbench 2.0 or higher now also try to update
  489.       RTPatch (if the the file is found in C: or SYS:WbStartup).
  490.     Added icons for install scripts for all 10 languages.  Install strings
  491.       are all more or less translated.  Catalog translation files of all
  492.       languages not supported yet are now also included, making it easier to
  493.       translate ReqTools.
  494.     From this release on ReqTools will make sure the Dir field of the file
  495.       requester structure is pointing to the current directory while in the
  496.       file filter callback hook (RTFI_FilterFunc).
  497.     Changes in the Kickstart 2.0 version of ReqTools:
  498.       o All requesters use simple refresh windows.  Window refreshing is a
  499.         bit slower, but a lot of chip memory is saved.  Very important when
  500.         you use the requesters on screens with a lot of colors/bitplanes.
  501.       o All requesters have a backfill hook installed that will fill the
  502.         background of the window with the DrawInfo pen BACKGROUNDPEN.  The
  503.         DetailPen and BlockPen of the requesters will now also be set to
  504.         DrawInfo pens (BACKGROUNDPEN and SHADOWPEN).
  505.     Bug fixes:
  506.       o When the RTGL_GadFmt or RTGS_GadFmt tag was used the requester did
  507.         not return the correct value.
  508.       o Small problem with requester resizing on virtual screens. Maximum
  509.         number of entries was restricted to fit the visual area. The maximum
  510.         height of the requester's window is now also set correctly.
  511.       o Empty (current) directory no longer cancels the directory requester.
  512.       o Font requester in Kickstart 1.3 version of the library didn't
  513.         show a font if the font was previously opened in another height.
  514.       o Field rt_Flags in 'libraries/reqtools.[hi]' changed to rt_RTFlags
  515.         since it conflicted with the rt_Flags field in 'rexx/storage.[hi]'.
  516.         Shouldn't cause any problems since the field was private anyway.
  517.       o Entering a something like 'MAIL:/' to go to the parent directory
  518.         of MAIL: now works.
  519.     Some small errors and omissions fixed in the autodoc.
  520.     French catalog revised by David Lebel.  Thank you David for correcting
  521.       my lousy french :-)
  522.     Italian and Swedish catalog files included (thanks Michele and Patrik).
  523.     Updated/bug-fixed Oberon interface included.
  524.     Version 1.0a of RTPatch included.
  525.  
  526. *****************************************************************************
  527. RELEASE 2.0c (Library version 38.362 [1.3] - 38.810 [2.0])
  528.  
  529.     Fixed Enforcer hit in file, font and screenmode requesters of the
  530.       Kickstart 2.0 version of the library.
  531.     Fixed bug: when the pr_WindowPtr of the calling process was -1 and you
  532.       used a tag that needed a parent window (like RT_LockWindow or RT_ReqPos
  533.       with REQPOS_CENTERWIN) ReqTools could crash.
  534.     Pattern and drawer string gadgets no longer refresh the directory in the
  535.       requester if they aren't changed.  Especially useful if you cycle
  536.       through the string gadgets with TAB (Kickstart 2.0 version).
  537.     Included a README file explaining ReqTools' installation scripts need
  538.       Commodore's Installer utility.
  539.     Include file 'libraries/reqtools.h' fixed.  This used a BPTR without
  540.       including 'libraries/dos.h'. Thanks to Olaf Barthel for reporting this.
  541.     Danish catalog file included (thanks Per).
  542.     Version 1.0b of RTPatch included.
  543.  
  544. *****************************************************************************
  545. RELEASE 2.1 (Library version 38.382 [1.3] - 38.961 [2.0])
  546.  
  547.     New major feature: ReqTools preference editor (Kickstart 2.0+ only)!
  548.       o Switch screen to front popping on/off.
  549.       o Display drawers before files in file requester.
  550.       o Mix drawers and files in file requester.
  551.       o Sort entries in file requester immediately.
  552.       o Set default position of all requesters.
  553.       o Set default size of file, font, screenmode and volume requesters.
  554.       o Set minumum and maximum number of entries visible in file, font,
  555.         screenmode and volume requesters.
  556.     Kickstart 2.0 (or higher) version of ReqTools only:
  557.       o The file requester will keep its top entry up to date with what is
  558.         typed in the filename string gadget.  Pressing the up or down arrow
  559.         will select the file that most closely matches the contents of the
  560.         filename string gadget.
  561.       o Entering of pathnames in the filename string gadget has been
  562.         improved.  The file requester will now check if what you enter is a
  563.         directory.  This allows you to enter directories without a trailing
  564.         '/' (for example 'SYS:c').
  565.       o rtSetWaitPointer() and rtLockWindow() will set the standard Intuition
  566.         wait pointer on Kickstart 3.0 machines.  Note that rtUnlockWindow()
  567.         will _not_ restore the original pointer if it was a new pointerclass
  568.         pointer (Kickstart 3.0)!
  569.       o File requester is an AppWindow now.  This means you can drop disk,
  570.         drawer or file icons on the requester's window to go to a directory
  571.         or select a file.
  572.       o All requesters now set an appropriate bitplane write mask in the
  573.         rastport of their windows.  This makes them render and scroll much
  574.         faster on a screen with lots of bitplanes/colors.
  575.     Available system fonts will now be buffered for _all_ font requesters.
  576.       This speeds up font requesters enormously, a font scan is generally
  577.       needed only once now.  The version of ReqTools for Kickstart 2.0 (or
  578.       higher) has been made intelligent enough to see if the assign has been
  579.       changed between two requests.  ReqTools will free the buffer when
  580.       memory gets low.  Note that to accomplish this ReqTools keeps its
  581.       library open count 0.  A real open count is kept internally.
  582.     File requester will no longer show deferred (late) assigns.
  583.     Several bug fixes:
  584.       o Small bug: was no longer possible to exit volume/assign list by
  585.         pressing Return in the drawer gadget without changing the directory.
  586.       o Fixed weird bug with the selection of listview entries.  If you
  587.         selected a non-existing item and dragged the mouse up, an item above
  588.         all others would be complemented.  Thanks to Mathias Korsbäck for
  589.         reporting this.
  590.       o No longer goes into an endless loop when LOCALE: could not be found
  591.         when a catalog had to be loaded.  Thanks to Holger Kruse for
  592.         reporting this.
  593.       o Resizing a file requester with an inexisting directory and with the
  594.         volume list displayed resulted in a crash.
  595.       o Some other miscellaneous bugfixes.
  596.     Norwegian catalog file included (thanks Mario).
  597.     Improved and bug fixed Dice C libraries included (by Magnus Holmgren).
  598.       Includes libs for small code model, large code model and both of these
  599.       with the arguments passed in registers.
  600.     M2Amiga interface updated for ReqTools V38 by Frank Lömker.
  601.     PCQ Pascal interface to the library included, written by Chris Pressey.
  602.     Version 1.1 of RTPatch included.
  603.  
  604. *****************************************************************************
  605. RELEASE 2.1a (Library version 38.385 [1.3] - 38.1002 [2.0])
  606.  
  607.     Serious bug fixed: file requester would crash if you tried to type a
  608.       filename in a requester with a shared IDCMP port.
  609.     Some other small bug fixes.
  610.     rtGetString() and rtGetLong() will activate the string/integer gadget
  611.       when the requester window becomes active.  This should make life easier
  612.       for people using AutoPoint or other sunmouse-like utilities.
  613.     New keyboard shortcuts for file requester:  pressing Control-Up/Down will
  614.       bring you to the start/end of the directory list.
  615.     Kickstart 2.0 (or higher) version of ReqTools only: Faster directory
  616.       reading from a fast hard disk or ram disk.  The file requester now
  617.       tries to read as many files as possible in .5 seconds. If this time-out
  618.       expires, or all files have been read, the display is updated for the
  619.       first time.  After this initial time-out period the display will be
  620.       updated every .2 seconds.  This reduces the amount of rendering calls
  621.       substantially and therefore results in faster directory loading.
  622.     German catalog for preference editor included.  German strings in install
  623.       script have also been updated (by Steffen Salzmann, thanks Steffen).
  624.     Danish catalog for preference editor included (thanks Per).
  625.  
  626. *****************************************************************************
  627. RELEASE 2.1b (Library version 38.388 [1.3] - 38.1017 [2.0])
  628.  
  629.     Recompiled with SAS/C 6.1: fixes bug of the filerequester not returning
  630.       CALL_HANDLER when the RT_ReqHandler tag was used.  Seems SAS/C 6.0
  631.       converted (APTR)0x80000000 to 0.  Don't you just love compiler bugs :-)
  632.     File requester will clear the current selection when the filename string
  633.       gadget is changed.  This allows you to use the filename completion
  634.       multiple times in a row.  Also, using Amiga-X in the string gadget will
  635.       no longer bring you to the start of the directory.
  636.     RTSC_ModeFromScreen will now correctly set the autoscroll setting.  The
  637.       default autoscroll setting is now also correctly read from the screen
  638.       the requester will appear on.  Changed reqtools.doc to reflect this
  639.       change.
  640.     Volume and directory requesters will no longer exit when Shift Return is
  641.       pressed (special request by per Jacobsen :-).  
  642.     Kickstart 2.0 version of ReqTools only:  Requesters with an inactive
  643.       parent window (using the RT_Window tag) will also open in inactive
  644.       state.  Suggested by Jorrit Tyberghein.
  645.     Now respects EZREQF_NORETURNKEY flag also for single button EZRequesters,
  646.       so the Return shortcut is disabled.  Thanks to Bert Wynants for
  647.       pointing this out.  As a result of this most single-button requesters
  648.       will have their buttontext printed in bold, showing you can use the
  649.       return key.
  650.     String gadget edit hook changed to be more according to the rules (using
  651.       sgwork->EditOp instead of checking for Amiga-X and Amiga-Q by itself).
  652.     Some small bugs in include files fixed.  Thanks to Magnus Holmgren and
  653.       Per Jacobsen for reporting these.
  654.     Italian catalog for preference editor included (thanks Michele).
  655.     Spanish catalogs for library and preference editor included.  Translated
  656.       by Juan Carlos Sanchez Garcia.  I had to edit the catalog for the
  657.       preference editor so the prefs window would fit on a 640x200 screen.
  658.       My apologies to spanish ReqTools users if I made mistakes in doing so.
  659.     German catalog file for preference editor fixed.
  660.     Version 1.1a of RTPatch included.
  661.  
  662. *****************************************************************************
  663. RELEASE 2.1c (Library version 38.388 [1.3] - 38.1020 [2.0])
  664.  
  665.     Requesters with an inactive parent window will no longer open inactive.
  666.       This new feature of ReqTools 2.1b was removed since it was more
  667.       annoying than helpful.  Jorrit will be shot at dawn... ;-)
  668.     Palette color spread function was broken in Kickstart 2.0 version of the
  669.       library.  Fixed.  Thanks to Jesper Juul for reporting this bug.
  670.     New danish catalogs and danish install text included (thanks Jesper).
  671.     German catalog for library fixed, some keyboard shortcut keys were used
  672.       twice.
  673.     French catalog for preference editor included (thanks Benoit).
  674.  
  675. *****************************************************************************
  676. RELEASE 2.1d (Library version 38.388 [1.3] - 38.1022 [2.0])
  677.  
  678.     Major new feature: rexx interface to the library.  RexxReqTools is a
  679.       small library that offers lots of rexx commands to use just about all
  680.       ReqTools requesters.  Many thanks to Rafael D'Halleweyn for writing
  681.       this library and giving me permission to include it with ReqTools.
  682.     Finally fixed the refresh bug in the Kickstart 2.0 version of ReqTools.
  683.       Seems it was a bug in the 3.00 ROM.  ReqTools now uses the 'bug-less'
  684.       ScrollWindowRaster() for its window scrolling on 3.0.  Thank you
  685.       Peter Cherna! :-)
  686.     A small bug popped up in the rewriting of the string gadget edit hook
  687.       (Kickstart 2.0 version of ReqTools): keyboard shortcuts were no
  688.       longer possible from integer gadgets.  Fixed.
  689.     Added extra message to install script.  Must still be translated for all
  690.       languages except english and dutch.
  691.     Fixed bug in 'reqtools.i'.  Missing rtfi_IntuiMsgFunc, rtfo_IntuiMsgFunc
  692.       and rtsc_IntuiMsgFunc caused several offsets to be wrong.  Thanks to
  693.       Dirk Vangestel for reporting this.
  694.     Fixed bug in SAS/C and Manx C glue code.  Stubs for rtReqHandler() and
  695.       rtReqHandlerA() didn't save the A6 register.
  696.     Included assembly version of demo source (converted by Dirk Vangestel).
  697.     Most glue code has been archived with LhA (not everyone needs all the
  698.       glue code, just de-archive what you need).
  699.     Fixed enforcer hit in ReqTools preference editor, version 2.1a included.
  700.     Version 1.1b of RTPatch included.
  701.  
  702. *****************************************************************************
  703.  
  704. reqtools.library written by Nico François (Yes, Nico is my first name :-)
  705.  
  706. Thanks to o Kai Bolay for writing the Oberon interface,
  707.           o Frank Lömker and Michael Griebling for writing the Modula-2
  708.             interfaces,
  709.           o Jan van den Baard and Magnus Holmgren for writing the Dice C
  710.             libraries,
  711.           o Martin Steppler for writing the Manx C libraries,
  712.           o Richard Waspe and Gunter Indenhoek for writing the HighSpeed
  713.             Pascal interfaces,
  714.           o Chris Pressey for writing the PCQ Pascal interface,
  715.           o Federico Giannici for the useful suggestions,
  716.           o Peter Stuer, Gunter Indenhoek, Jorrit Tyberghein, Ives Aerts,
  717.             Bert Wynants, Mathias Korsbäck, Christoffer Zettermark and
  718.             Roger Nordin for beta-testing,
  719.           o Michele Giorato for the Italian catalog translations,
  720.           o Patrik Nordvall for the Swedish catalog translation,
  721.           o Per Jacobsen/Jesper Juul for the Danish catalog translations,
  722.           o Mario Gonzalez for the Norwegian catalog translations,
  723.           o Juan Carlos Sanchez Garcia for the Spanish translations,
  724.           o Benoit Mortier for the French catalog translation,
  725.           o Dirk Vangestel for the assembly demo source,
  726.           o Rafael D'Halleweyn for writing RexxReqTools,
  727.           o Herman Stevens for being my Fido boss node and having such a
  728.             great Amiga BBS,
  729.           o All registered ReqTools users/developers.
  730.  
  731.  
  732. "What you got buried? In your backyard
  733.  What secret do you sleep with when the black moon comes?" - The Black Crowes
  734.  
  735.  
  736. (C) 1991-1993 Nico François
  737.  
  738.                                    //
  739.                        Thanks to \X/ Amiga for being the best computer ever !
  740.  
  741.