home *** CD-ROM | disk | FTP | other *** search
-
- **********************************
-
- reqtools.library
-
- The requester toolkit.
-
- Release 1.0c
-
- (c) 1991/1992 Nico François
-
- **********************************
-
-
- First of all read the DISTRIBUTION file for information on... er well...
- distribution :-)
-
- If you have suggestions or remarks about ReqTools, or if you find any
- bugs, please let me know.
-
- Write to the following address:
-
- Nico François
- Corbielaan 13
- B-3060 Bertem
- BELGIUM
-
-
- Contents
- ========
-
- 1. An introduction
-
- 2. Features
-
- 3. Installation
-
- 4. Using reqtools.library
-
-
- 1. An introduction
- ==================
-
- reqtools.library is a standard Amiga shared, runtime library. The purpose
- of ReqTools is to make it a lot quicker and easier to build standard requesters
- into your programs. ReqTools is designed with Commodore's style guidelines in
- mind, all requesters have the look-and-feel of AmigaDOS Release 2.
-
- If you use ReqTools in your programs you do not have to worry about
- requesters too much. You'll have a lot more time to concentrate on the
- really important stuff your program does.
-
- The library has been inspired by req.library (by Colin Fox & Bruce Dawson)
- and Commodore's own asl.library. You will find it shares a lot of the
- features with these two libraries, while it has some additional ones as well.
- While asl.library was great in look-and-feel I felt it lacked quite a bit in
- the power department. This power _is_ mostly available in req.library, but
- this doesn't fit in too well with AmigaDOS Release 2. So the idea for a new
- requester library was born.
-
- I tried to make all requesters in ReqTools very powerful, easy to use and
- with a very nice new-look 3D interface. Efficiency was also considered very
- important. The 2.0 version of the library is about 20K large. I'm sure you
- will agree this is not too much considering what ReqTools offers.
-
- ReqTools features the following requesters: a query requester, a string
- requester, a number requester, a file requester, a font requester and a
- palette requester.
-
-
- 2. Features
- ===========
-
- The requesters have following features:
-
- All requesters:
-
- o have a pixel-perfect Workbench 2.0 3D look, also on Kickstart 1.3.
- o adjust to interlaced screens and to the screen's font (rtEZRequest,
- rtGetLong, rtGetString) or to any fixed-width font if the screen's font
- is proportional (rtPaletteRequest, rtFileRequest or rtFontRequest).
- o can appear under the mouse pointer, centered on the
- screen/in a window or at the top left of the screen/a window.
- o can be used asynchronously.
- o check pr_WindowPtr of your process is to find the screen they should
- appear on (can be overridden).
- o use tags for maximum future extendibility. All standard 2.0 tags are
- supported (like TAG_SKIP, TAG_MORE, etc.).
- o bring the screen they appear on to the front. The screen that was
- in front previously will be put in front again when the requester
- finishes (if it is still open).
- o will always appear in the visible portion of the screen (support of
- virtual screens).
- o are extensively tested using enforcer and mungwall debugging tools.
-
- rtEZRequest, the query requester:
-
- o easy keyboard shortcuts:
- - Left Amiga V and Left Amiga B (like the standard requesters).
- - Y for positive response.
- - N, R, Esc for negative response.
- - Return can also be used as a shortcut and can be
- associated with any response. The gadget in question
- will have its text printed bold.
- Default response for Return is the positive response.
- - buttons give visual feedback when keyboard shortcuts
- are used.
- - keyboard shortcuts can be canceled by pressing Shift
- before releasing the key.
- o number of responses only limited by screen width.
- o allows for multiple lines of text.
- o text can be centered in requester (great for about requesters).
- o supports the use of 'printf' formatting codes in text
- and in responses.
- o can be terminated by IDCMP events.
-
- rtFileRequest, the file requester:
-
- o similar in use and look-and-feel as Asl file requester.
- o buffers directories in memory.
- o files and directories can be added or removed from the buffer
- by the calling program.
- o can be put in save mode, disabling double-clicks and asking you if
- directories that can't be found (entered manually) should be created.
- o optional callback hook for verification of files before they are
- added to the buffer.
- o supports multiple selection of files and optionally of directories.
- o when multi-select is on All, Clear and Match.. buttons are available.
- All selects, and Clear unselects all files. Match.. brings up a
- requester where the user can enter a pattern to select files.
- o can be used as a directory requester (showing no files).
- o optional pattern gadget to match files on.
- o shows all devices (with volume names) and all assigns made.
- o supports TABCYCLE under 2.0
- o pattern matching supports _ALL_ AmigaDOS 2.0 patterns.
-
- rtFontRequest, the font requester:
-
- o buffers all fonts in memory.
- o shows sample of font you click on.
- o can be also be used to select the font's style.
- o supports color fonts, can change the screen's palette.
- o supports scaled fonts (AmigaOS Release 2 only).
- o optional callback hook for verification of fonts before they are
- added to the buffer.
- o supports TABCYCLE under 2.0
-
- rtPaletteRequest, the palette requester:
-
- o features Copy, Swap and Spread functions.
- o current values of red, green and blue are displayed.
- o returns the selected color.
-
- rtGetLong, the long integer requester:
-
- o width of requester can be set by caller.
- o a minimum and maximum can be supplied and will be displayed
- in the requester.
- o a value to show up when the requester appears can be supplied.
-
- rtGetString, the string requester:
-
- o width of requester can be set by caller.
- o a string to show up when the requester appears can be supplied.
-
-
- 3. Installation
- ===============
-
- To install reqtools.library copy it to your Libs: directory by hand, or
- run the installation script 'Install' (by using 'Execute' from the Shell or
- by double-clicking its icon).
-
- reqtools.library is provided in two versions (that are 100% equivalent):
- one for Kickstart 1.2 (or higher) and one for Kickstart 2.0 and higher.
-
- The version for Kickstart 2.0 uses 2.0 ROM functions for stuff like
- pattern matching, parsing tags, the 3D look, while a lot in the Kickstart 1.3
- version is emulated. It is therefore suggested you use the 2.0 version of
- the library if you have Kickstart 2.0 in ROM.
-
-
- 4. Using reqtools.library
- =========================
-
- If you are a C programmer all you need to do is include the correct
- headers and open reqtools.library. After that you can use the functions in
- the library as if they were C functions. If your program quits it must of
- course close the library again. See 'demo.c' for an example.
-
- If you are using SAS/C 5.10a and you don't want to use pragmas, or if you
- are using version 4.0 or lower, you must link with LIB:reqtools.lib (small
- code) or LIB:reqtoolsnb.lib (large code).
-
- Programmers that use Manx C can use 'Bind' to generate the glue routines
- they need (or if they are using 5.0 they can of course use pragmas for in-line
- library calls). If somebody out there writes glue routines for Manx they are
- welcome, I'll include them with the next distribution of ReqTools.
-
- From ReqTools 1.0c onwards Dice C is also supported. You can find two
- libraries to link with in the dlib directory. Link with reqtoolss.lib
- (standard args) or reqtoolssr.lib (registerized args).
-
- Note that the functions allowing a variable number of arguments can't
- be called using pragmas. So if you use these you must always link with
- LIB:reqtools.lib or LIB:reqtoolsnb.lib.
-
- Assembly programmers should also include the correct files and open
- reqtools.library. To call a function they must load A6 with the library base,
- put the arguments in the appropriate registers and jump to the library vector
- offset of the function they want to call.
-
- All library functions are explained in the autodoc file 'reqtools.doc'.
-
- Enjoy.
-
-
- LIBRARY HISTORY:
-
- *****************************************************************************
- RELEASE 1.0 (Library version 37.556 [1.3] - 37.670 [2.0])
-
- First release.
-
- *****************************************************************************
- RELEASE 1.0a (Library version 37.557 [1.3] - 37.673 [2.0])
-
- Fixed two minor bugs:
- - if a directory could not be found and you re-invoked the file
- requester it wouldn't check the directory again.
- - devices like PRT:, CON:, etc. now no longer show up in the device
- list of the 2.0 file requester.
-
- *****************************************************************************
- RELEASE 1.0b (Library version 37.566 [1.3] - 37.678 [2.0])
-
- Fixed bug: entering a pattern when a file requester's directory was
- invalid could cause a crash.
- rtGetString() and rtGetLong() 2.0 requester windows no longer have close
- gadgets.
- Font requester entries are "release verify" instead of "immediate".
- If no minimum or maximum is given for the GetLong requester it will not
- be displayed (1.0 and 1.0a displayed MAXINT or MININT).
- Minor cosmetic adjustments to file, font and palette requesters.
- Oberon interface to the library included.
-
- *****************************************************************************
- RELEASE 1.0c (Library version 37.592 [1.3] - 37.718 [2.0])
-
- Boopsi dispatch function for rtEZRequestA() buttons optimized (ReqTools
- for Kickstart 2.0). Occasional flicker just about eliminated.
- Enlarged buttons a bit in rtGetLongA(), rtGetStringA() and the file, font
- and palette requesters.
- Width of scroller gadget in file requester window increased.
- File string gadget is cleared when 'All' or 'Match..' is used. This
- wasn't done before and could result in unexpected multi-select results.
- Visual feedback for keyboard shortcuts improved (rtEZRequestA()). Button
- stays depressed as long as the key in question is held down, but still
- for a minumum of 1/10 sec. New feature: shortcuts can be canceled by
- pressing Shift before releasing the key.
- Minor bug fix: keyboard shortcuts V and B now really only work together
- with the Left Amiga key. Used to work without the qualifier.
- rtEZRequestA(), rtGetLongA() and rtGetStringA() will no longer call the
- DOS function Delay(), so they may from now on be called by tasks.
- Every ReqTools requester, except the file and font requesters (they use
- DOS for obvious reasons), can be called from a task.
- EZRequest with only one button now responds to the Return key, whether
- EZREQF_NORETURNKEY is set or not.
- Fixed small bug in libraries/reqtools.i include file. rtfi_Hook and
- rtfo_Hook were followed by a ; and this could lead to problems.
- Libraries (reqtoolss.lib and reqtoolssr.lib) for Dice C included.
- Pre-release (0.9ß) of RTPatch patcher program included.
-
- *****************************************************************************
-
- reqtools.library written by Nico François (Yes, Nico is my first name :-)
- thanks to Kai Bolay for writing the Oberon interface and
- Jan van den Baard for writing the Dice libraries.
-
-
- (c) 1991/1992 Nico François
-
- //
- Thanks to \X/ Amiga for being the best computer ever !
-
-