Don't change this line:$VER: RexxReqTools_Documentation 37.5 (13.2.93)


                             RexxReqTools 1.0  (37.19)
                            ~~~~~~~~~~~~~~~~~~
                                               © 1992, 1993 Rafael D'Halleweyn

Contents
========

1.   Introduction

2.   Using RexxReqTools
2.1. BodyText
2.2. GadgetText
2.3. TagStrings
2.4. Remark about screens

3.   Functions
3.1. rtezrequest()
3.2. rtfilerequest()
3.3. rtfontrequest()
3.4. rtgetlong()
3.5. rtgetstring()
3.6. rtpaletterequest()
3.7. rtscreenmoderequest()

4.   Copyright
4.1. Redistribution

5.   History


1. Introduction
===============

RexxReqTools gives ARexx users easy access to a large family of requesters.
All requesters are easy to use; they require one or no arguments. But the
requesters also have a lot of power through several optional arguments and
through tagstrings (more about those in 2.3).
RexxReqTools itself doesn't implement any of these requesters, it is a link
between ARexx (© William S. Hawes) and ReqTools (© Nico François).

If you have any questions, remarks, suggestions or bug reports about
RexxReqTools please let me know. You can contact me via normal mail (sorry
no e-mail);

          Rafael D'Halleweyn
          Perckhoevelaan 17
          B-2610 Antwerpen

          BELGIUM


2. Using RexxReqTools
=====================

To use RexxReqTools you first have to install the library rexxreqtools.library
in your LIBS: directory. If you double click the Install_Lib icon, you will be
asked if you want to install the library, if you enter `y' (+<RETURN>) the
library will be installed.

You also have to tell ARexx about this new library. You can do this through
the CLI command

    RxLib rexxreqtools.library 0 -30

If you use RexxReqTools a lot you can insert this line in your startup-sequence
(or user-startup if you have Workbench 2.0 or higher).
Alternatively you can insert the following command in every ARexx script that
uses RexxReqTools

    addlib('rexxreqtools.library',0,-30)

For RexxReqTools to be able to work you'll also need to have the
`rexxsyslib.library' and `reqtools.library' installed in LIBS:.
`rexxsyslib.library' is the heart of ARexx. If you are running Workbench 2.0
or higher you should have this library already installed. If you are running
Workbench 1.3 then you'll have to buy the ARexx packet and install ARexx or
you have to upgrade to Workbench 2.0 (the inclusion of ARexx is reason enough
to upgrade, not to mention the other benefits).
`reqtools.library' is the heart of ReqTools. You should find this library
on the same disk as RexxReqTools (you probably found RexxReqTools in a drawer
of the ReqTools distribution).

2.1. BodyText
-------------
The message, number and string requester take an argument named <bodytext>.
This is the main text that is displayed in the requester.
You can split this text on several lines by using a newline ('0A'x).
If you want to use a `%'-character in bodytext then you'll have to type `%%'.
Also don't use `%s', `%d', or any other C printf-style formatting codes
(The computer won't crash if you do use them, but output will look bad).

EXAMPLES:
    "this is a bodytext"
                                                             _________________
    "some text split" || '0A'x || "over two lines"  ---->   | some text split |
                                                            | over two lines  |
                                                             -----------------
                                                 ________________________
    "more text, split over" || NL ||,           | more text, split over  |
    "more lines, but easier" || NL ||,   ---->  | more lines, but easier |
    "to read in the script"                     | to read in the script  |
                                                 ------------------------
NOTE 1: For the third example to work you'll have to add the assignment
        "NL = '0A'x" to the script.
NOTE 2: The comma in the third example is a continuation character for a
        statement that continues on the next line.

2.2. GadgetText
---------------
The message, number and string requester take an argument named <gadgettext>.
This argument describes the gadgets in the requester. It contains the text of
all the gadgets.
Each gadget is seperated from the others by a bar character (`|'). They will
appear in the same order as they were typed. There is no limit to the number of
gadgets other than the width of the screen the requester will appear on.
You can also specify a shortcut for each gadget by placing an underscore (`_')
before the character that identifies the shortcut key.
If you want to use a `%'-character in gadgettext then you'll have to type `%%'.
Also don't use `%s', `%d', or any other C printf-style formatting codes
(The computer won't crash if you do use them, but output will look bad).

EXAMPLES:
    "Continue"

    " _Ok |_Abort|_Cancel"   gives three gadgets: `Ok', `Abort' and `Cancel'
                             with shortcuts `O', `A' and `C'

    "0%%|25%%|50%%|75%%|100%%"  gives five gadgets: `0%',... `100%'

A special case of <gadgettext> is the <oktext> (file and font requester).
It describes the gadget in the down left corner. In this text you can also
use an underscore to indicate a shortcut, but you shouldn't use a bar.

EXAMPLES
    "_Open"

    "Delete"

2.3. tagstrings
---------------
All the requester take an argument called <tagstring>. Tagstrings make it easy
to specify further parameters to the functions. A tagstring is a string made up
of attribute/value pairs, each pair is seperated from the next by one or more
spaces. (The use of spaces as a seperator make it easy to link tagstring
together in ARexx). One attribute/value pair is called a tag item, it contains
the name of the attribute and the value it will take, attribute and value are
seperated by an equal sign.
The attribute can be a number, a constant or a string. If the attribute is a
string it has to be surrounded by quotes (" or '). It the attribute is a
constant then you can use the or sign (`|') to OR several constans together.

EXAMPLES:
      'rt_leftoffset=120'

      'rt_reqpoq=reqpos_centerscr rt_leftoffset=120'

      'rt_pubscrname="PowerPacker"'

NOTE: The last example is equivallent with "rt_pubscrname='PowerPacker'" or
      'rt_pubscrname=''PowerPacker''' or "rt_pubscrname=""PowerPacker"""

All constants are described in chapter 3, except for the IDCMP flags and
`false' and `true'.
The message, number and text requester allow you to specify IDCMP flags
(rt_idcmpflags). RexxReqTools understands most of the IDCMP flags. This
is a list of all supported IDCMP flags:

    idcmp_mousebuttons  requester dissapears when mouse button is pressed
    idcmp_mousemove                               mouse is moved
    idcmp_gadgetdown                              a gadget is depressed
    idcmp_gadgetup                                a gadget is released
    idcmp_rawkey                                  any key is pressed
    idcmp_diskinserted                            disk is inserted
    idcmp_diskremoved                             disk is removed
    idcmp_activewindow                            requester window is activated
    idcmp_inactivewindow                          requester window deactivated
    idcmp_vanillakey                              a key is pressed

You can OR several of these together.

EXAMPLE:        "rt_idcmpflags=idcmp_diskinserted|idcmp_vanillakey"

Currently no more then 14 tags are used. If you use more they will be ignored.

2.3. resultname
---------------
All the requesters take an argument called <resultname>. This is the of the
variable where the return value of the requester will be stored. This argument
is optional it defaults to `rtresult'.
Some requesters that have to return a lot of information use compounds of this
variable to store information (filerequester and fontrequester).
For exmaple: the fontrequester returns in the compound <resultname>.height the
height of the selected font.

2.4. Remark about screens
-------------------------
RexxReqTools contains attributes to set the screen on which the requester will
appear (`rt_window', `rt_screen', `rt_pubscrname'). But I would like to
discourage you from using `rt_window' and `rt_screen', because incorrect use
will crash the computer.
RexxReqTools will always try to open the requester on the same screen as the
calling program (TECH INFO: but this may not always be possible because some
programs don't set there pr_WindowPtr).

3. Functions
============

This chapter contains the full documentation for the 6 include functions:

    rtezrequest()         message requester
    rtfilerequest()       file requester
    rtfontrequest()       font requester
    rtgetlong()           number requester
    rtgetstring()         text requester
    rtpaletterequest()    color requester

All requesters are implemented as functions. This means that you have to use
them in an expression or use the `CALL' instruction.

EXAMPLES:

    filename = rtfilerequest()

    CALL rtezrequest('Hello world')

3.1. rtezrequest()
------------------

    ret = rtezrequest(bodytxt, [gadtxt], [title], [tagstring], [resultname])

  DESCRIPTION
    This function puts up a requester for you and waits for a response from
    the user. If the response is positive, this procedure returns 1.
    If the response is negative, this procedure returns 0.
    The function may also return an IDCMP flag or a value corresponding with
    one of other possible responses (see below).

    You can satisfy the requester with the following keyboard shortcuts:
      'Y' or Left Amiga 'V' for a positive response,
      ESC, 'N', 'R' or Left Amiga 'B' for a negative response.

    If ezreqf_noreturnkey is _not_ set (see rtez_flags below) the RETURN key
    is also accepted as a shortcut for the positive response (can be changed
    using rtez_defaultresponse, see below).  The response that will be
    selected when you press RETURN will be printed in bold.

    The ezreqf_lamigaqual flag should be used when you put up a requester
    for a destructive action (e.g. to delete something).  When it is set
    the keyboard shortcuts are limited to Left Amiga 'V' and 'B' so it is
    harder to accidently select something you will regret.
    Note that the RETURN and ESC key remain active!  To disable the RETURN
    key use the ezreqf_noreturnkey flag.  The ESC key cannot be disabled.

  INPUTS
    bodytxt    - requester body text (required).
    gadtxt     - text for gadgets (optional, default to " OK ").
    title      - title of requester window (optional).
    tagstring  - a tag string to set further attributes (optional).
    resultname - this variable will contain the same value as ret (optional,
                 defaults to "rtresult").

  TAGS
    rt_idcmpflags   - Extra idcmp flags to return on.
    rt_reqpos       - One of the following:
                        reqpos_pointer    - requester appears where the mouse
                                            pointer is (default).
                        reqpos_centerscr  - requester is centered on the
                                            screen.
                        reqpos_centerwin  - requester is centered in the
                                            window specified by rt_window.
                                            If no 'rt_window' is specified the
                                            requester will be centered on
                                            the screen.
                        reqpos_topleftscr - requester appears at the top left
                                            of the screen.
                        reqpos_topleftwin - requester appears at the top left
                                            of the window specified by
                                            'rt_window'.
                      The requester will always remain in the visible part of
                      the screen, so if you use the Workbench 2.0 ScreenMode
                      preferences editor to enlarge your Workbench screen and
                      you scroll around, the requester will always appear in
                      the part you can see.
                      'reqpos_centerscr' and 'reqpos_topleftscr' also apply to
                      the visible part of the screen. So if you use one of
                      these the requester will be appear in the center or the
                      top left off what you can see of the screen as opposed
                      to the entire screen.
                      'reqpos_centerwin' and 'reqpos_topleftwin' fall back to
                      'reqpos_centerscr' or 'reqpos_topleftscr' respectively
                      when there is no parent window.  So you can safely use
                      these without worrying about the existence of a window.
    rt_leftoffset   - Offset of left edge of requester relative to position
                      specified with 'rt_reqpos' (does not offset the requester
                      when rt_reqpos is 'reqpos_pointer').
    rt_topoffset    - Offset of top edge of requester relative to position
                      specified with 'rt_reqpos' (does not offset the requester
                      when 'rt_reqpos' is 'reqpos_pointer').
    rt_pubscrname   - Name of public screen requester should appear on. When
                      this tag is used the 'rt_window' tag will be ignored.
                      If the public screen is not found the requester will
                      open on the default public screen.
                      Only works on Kickstart 2.0!  rexxreqtools.library does
                      not check this, it is up to you *NOT* to use this tag
                      on Kickstart 1.3 or below!
                      Note that the 1.3 version of reqtools.library also
                      understands and supports this tag (on 2.0).
    rt_screen       - Address of screen to put requester on.  You should
                      never use this, use 'rt_window' or 'rt_pubscrname'.
    rt_window       - Window that will be used to find the screen to put the
                      requester on.
                      NOTE: You have to be cautious with rt_screen and
                            rt_window: if you specify a wrong value the
                            computer will crash.
    rt_waitpointer  - If this is 'true' the window calling the requester will
                      get a standard wait pointer set while the requester is
                      up.
                      Defaults to 'false'.
    rt_lockwindow   - [ReqTools V38] If this is 'true' the window calling the
                      requester will get locked.  It will no longer accept any
                      user input and it will get standard wait pointer set.
                      Defaults to 'false'.
    rt_screentofront- [ReqTools V38] Boolean indicating whether to pop the
                      screen the requester will appear on to the front.
                      Default is 'true'.
    rtez_flags      - Flags for rtezrequest():
                        ezreqf_noreturnkey - turn off the RETURN key as
                                             shortcut for positive response.
                        ezreqf_lamigaqual  - keyboard shortcuts are limited
                                             to Left Amiga 'V' and 'B', ESC
                                             and RETURN.
                        ezreqf_centertext  - centers each line of body text
                                             in the requester window. Useful
                                             for about requesters.
    rtez_defaultresponse -
                      Response value that will be returned when the user
                      presses the return key.  Will be ignored if the
                      'ezreqf_noreturnkey' flag is set.  The text for this
                      response will be printed in bold. Default is 1.

  RESULT
    ret - 1 for leftmost (positive) response, then each consecutive response
          will return 1 more, the rightmost (false) response will return 0
          (false), so 1,2,3,...,num-1,0 --.
          If the functions returns anything else the requester was finished
          through an IDCMP message.
          

  EXAMPLES

    call rtezrequest('No block marked')

    call rtezrequest('Do you really want to quit?','Quit|Cancel')

    call rtezrequest('Stop?','_Yes|_Maybe|_No',,'rtez_defaultresponse=2')
    /* makes `Maybe' the default response */


3.2.  rtfilerequest()
---------------------

    newfilename = rtfilerequest ([filename], [directory], [title], [oktext],
                                 [tagstring], [resultname] )

  DESCRIPTION
    Get a directory and filename(s), or just a directory from the user.

    If you use multiselect (rtfi_flags freqf_multiselect) you should specify
    a resultname (5th argument). The full paths and names of all selected files
    will be placed in the stems of this variable and <resultname>.count will
    contain the number of selected files (or directories).
    NOTE 1: the first filename is <resultname>.1 !!
    NOTE 2: stemvariables will only have a value when the filerequester was not
    cancled !!

    EXAMPLE:
        rtfilerequest(,,"Pick files",,,"rtfi_flags=freqf_multiselect",files)
        say "You selected" files.count "files"
        do i=1 to files.count
          say "  file" i||":" files.i
        end

  INPUTS
    filename   - default value for the filename, not including path!! (optional).
    directory  - the directory that shown when the filerequester opens
                 (optional).
    title      - requester window title (optional).
    oktext     - replacement text for "Ok" gadget (optional).
    tagstring  - a tag string to set further attributes (optional).
    resultname - this variable will contain 1 if the user pressed "Ok",
                 or 0 if the user pressed "Cancel". When multiselect is used
                 <resultname>.count will contain the number of files (or
                 directories) selected and <resultname>.1 ... will contain the
                 file (or directory) names (optional: defaults to "rtresult").

  TAGS
    rt_window          - see rtezrequest()
    rt_reqpos          - see rtezrequest()
    rt_leftoffset      - see rtezrequest()
    rt_topoffset       - see rtezrequest()
    rt_pubscrname      - see rtezrequest()
    rt_screen          - see rtezrequest()
    rt_waitPointer     - see rtezrequest()
    rt_lockwindow      - [ReqTools V38] see rtezrequest()
    rt_screentofront   - [ReqTools V38] see rtezrequest()
    rtfi_flags         - Several flags:
                           freqf_multiselect - allow multiple files to be
                                               selected.
                           freqf_selectdirs  - set this flag if you wish to
                                               enable the selecting of dirs
                                               as well as files.  You *must*
                                               also set 'freqf_multiselect'.
                           freqf_save        - Set this if you are using the
                                               requester to save or delete
                                               something.  Double-clicking
                                               will be disabled so it is
                                               harder to make a mistake and
                                               select the wrong file.  If the
                                               user enters a non-existent
                                               directory in the drawer string
                                               gadget, a requester will
                                               appear asking if the directory
                                               should be created.
                           freqf_nofiles     - Set this if you want to use
                                               the requester to allow the
                                               user to select a directory
                                               rather than a file.  Ideal for
                                               getting a destination dir. May
                                               be used with 'freqf_multiselect'
                                               and 'freqf_selectdirs'.
                           freqf_patgad      - When this is set a pattern
                                               gadget will be added to the
                                               requester.
    rtfi_height        - Suggested height of file requester window.
    rtfi_volumerequest - [ReqTools V38] The presence of this tag turns the file
                         requester into a volume/assign disk requester.  This
                         requester can be used to get a device name ("DF0:",
                         "DH1:",..) or an assign ("C:", "FONTS:",...) from the
                         user.
                         that the user may edit the disk/assign names, or
                         enter a new one.  Note also that the real device
                         name is returned, not the name of the volume in the
                         device.  For example "DH1:", not "Hard1:".
                         The tag data is used to set following flags:
                           vreqf_noassigns - Do not include the assigns in
                                             the list, only the real devices.
                           vreqf_nodisks   - Do not include devices, just
                                             show the assigns.
                           vreqf_alldisks  - Show _all_ devices.  Default
                                             behavior is to show only those
                                             devices which have valid disks
                                             inserted into them.  So if you
                                             have no disk in drive DF0: it
                                             will not show up.  Set this flag
                                             if you do want these devices
                                             included.
                         NOTE: Do *NOT* use 'rtfi_volumerequest 1'!
                               You are then setting the vreqf_noassigns flag!
                               Use 'rtfi_volumerequest 0' for a normal
                               volume requester.

  RESULT
    newfilename - the new filename that was selected or an empty string
                  ("") if the requester was canceled.

  EXAMPLES

    open(file,rtfilerequest(,,'_Open','Pick file to open'))

    volume=rtfilerequest(,,,'Pick volume','rtfi_volumerequest=0')


3.3. rtfontrequest()
--------------------

    fontname = rtfontrequest ([title], [oktext], [tagstring], [resultname])

  DESCRIPTION
    Let the user select a font and a style (optional).

  INPUTS
    title      - requester window title (optional);
    oktext     - replacement text for "Ok" gadget (optional);
    tagstring  - a tag string to set further attributes (optional);
    resultname - this variable will contain 1 if the user pressed "Ok",
                 or 0 if the user pressed "Cancel". In addition, if <resultname>
                 equals 1, <resultname>.name, <resultname>.height,
                 <resultname>.bold, <resultname>.italic and
                 <resultname>.underlined will contain the name, the height and
                 style attributes of the select font (if <resultname>.bold
                 equals 1 then bold was selected). (optional, defaults to
                 "rtresult").

  TAGS
    rt_window         - see rtezrequest()
    rt_reqpos         - see rtezrequest()
    rt_leftoffset     - see rtezrequest()
    rt_topoffset      - see rtezrequest()
    rt_pubscrname     - see rtezrequest()
    rt_screen         - see rtezrequest()
    rt_waitpointer    - see rtezrequest()
    rt_lockwindow     - [ReqTools V38] see rtezrequest()
    rt_screentofront  - [ReqTools V38] see rtezrequest()
    rtfo_flags        - Several flags:
                          freqf_fixedwidth    - only show fixed-width fonts.
                          freqf_colorfonts    - show color fonts also.
                          freqf_changepalette - change the screen's palette
                                                to match that of a selected
                                                color font.
                          freqf_leavepalette  - leave the palette as it is
                                                when exiting rtfontrequest()
                                                Useful in combination with
                                                'freqf_changepalette'.
                          freqf_scale         - allow fonts to be scaled
                                                when they don't exist in the
                                                requested size.
                                                (works on Kickstart 2.0 only,
                                                 has no effect on 1.2/1.3).
                          freqf_style         - include gadgets so the user
                                                may select the font's style.
    rtfo_height       - Suggested height of font requester window.
    rtfo_sampleheight - Height of font sample display in pixels (default 24).
    rtfo_minheight    - Minimum font size displayed.
    rtfo_maxheight    - Maximum font size displayed.

  RESULT
    fontname - name of the font

  EXAMPLES

    call rtfontrequest('Pick font',,'rtfo_flags=freqf_style',font)
    say "You picked" font.name "size" font.height
    if font.bold then say "You selected bold"

3.4.  rtgetlong()
-----------------

    newnumber = rtgetlong ([number], [bodytxt], [title], [gadtxt], [tagstring],
                           [resultname])

  DESCRIPTION
    Puts up a requester to get a signed number from the user.

  INPUTS
    number     - default value (optional);
    bodytxt    - requester body text (optional);
    title      - title of requester window (optional);
    gadtxt     - text for gadgets (optional, defaults to " _Ok |_Cancel");
    tagstring  - a tag string to set further attributes (optional);
    resultname - this variable will contain 1 if the user pressed "Ok",
                 or 0 if the user pressed "Cancel". if rt_idcmpflags or <gadtxt>
                 are used this variable will contain the same value as
                 rtezrequest() would return (optional: defaults to "rtresult").

  TAGS
    rt_window        - see rtezrequest()
    rt_idcmpflags    - see rtezrequest()
    rt_reqpos        - see rtezrequest()
    rt_leftoffset    - see rtezrequest()
    rt_topoffset     - see rtezrequest()
    rt_pubscrname    - see rtezrequest()
    rt_screen        - see rtezrequest()
    rt_waitpointer   - see rtezrequest()
    rt_lockwindow    - [ReqTools V38] see rtezrequest()
    rt_screentofront - [ReqTools V38] see rtezrequest()
    rtgl_min         - Minimum allowed value. If the user tries to enter a
                       smaller value the requester will refuse to accept it.
    rtgl_max         - Maximum allowed value, higher values are refused.
    rtgl_width       - Width of requester window in pixels.  This is only a
                       suggestion. rtgetlong() will not go below a
                       certain width.
    rtgl_invisible   - [ReqTools V38] Using this tag you can switch on invisible
                       typing.
                       Very useful if you need to get something like a
                       code number from the user. Default is 'false'.
    rtgl_backfill    - Backfill requester window with pattern.  Default 'true'.
    rtgl_flags       - [ReqTools V38]
                         glreqf_centertext    - centers each line of text
                                                above the gadget in the
                                                requester window. Should
                                                be generally set.
                         glreqf_highlighttext - Highlight text above the
                                                gadget. You will normally
                                                only want to use this if you
                                                also turned off the window
                                                backfilling.

  RESULT
    newnumber - the number that was entered or empty string ("") if the
                requester was canceled.

  EXAMPLES

    age=rtgetlong(,"Enter your age",,,"rtgl_min=0 rtgl_max=120")

3.5. rtgetstring()
------------------

    newstring = rtgetstring ([string], [bodytxt], [title], [gadtxt],
                             [tagstring], [resultname])

  DESCRIPTION
    Puts up a string requester to get a line of text from the user.
    The text present in 'string' upon entry will be displayed, ready to
    be edited.

  INPUTS
    string     - default value (optional);
    bodytxt    - requester body text (optional);
    title      - title of requester window (optional);
    gadtxt     - text for gadgets (optional, defaults to " _Ok |_Cancel");
    tagstring  - a tag string to set further attributes (optional);
    resultname - this variable will contain 1 if the user pressed "Ok",
                 or 0 if the user pressed "Cancel". if rt_idcmpflags or <gadtxt>
                 are used this variable will contain the same value as
                 rtezrequest() would return (optional: defaults to "rtresult").

  TAGS
    rt_window        - see rtezrequest()
    rt_idcmpflags    - see rtezrequest()
    rt_reqpos        - see rtezrequest()
    rt_leftoffset    - see rtezrequest()
    rt_topoffset     - see rtezrequest()
    rt_pubscrname    - see rtezrequest()
    rt_screen        - see rtezrequest()
    rt_waitpointer   - see rtezrequest()
    rt_lockwindow    - [ReqTools V38] see rtezrequest()
    rt_screentofront - [ReqTools V38] see rtezrequest()
    rtgs_width       - Width of requester window in pixels.  This is only a
                       suggestion. rtgetstring() will not go below a certain
                       width.
    rtgs_invisible   - [ReqTools V38] Using this tag you can switch on invisible
                       typing.
                       Very useful if you need to get something like a
                       password from the user.  It is strongly advised to use
                       an empty initial string or the user may get very
                       confused!  Default is 'false'.
    rtgs_backfill    - [ReqTools V38] Backfill requester window with pattern.
                       Default 'true'.
    rtgs_flags       - [ReqTools V38]
                         gsreqf_centertext    - centers each line of text
                                                above the gadget in the
                                                requester window. Should
                                                be generally set.
                         gsreqf_highlighttext - Highlight text above the
                                                gadget. You will normally
                                                only want to use this if you
                                                also turned off the window
                                                backfilling.

  RESULT
    newstring - the string that was entered or empty string ("") if the
                requester was canceled.

  EXAMPLES

    name=rtgetstring(,"Enter your name")

    password=retgetstring(,"Enter your password",,,"rtgs_invisible=true")


3.6. rtpaletterequest()
-----------------------

    newcolor = rtpaletterequest ([color], [title], [tagstring], [resultname])

  DESCRIPTION
    Put up a palette requester so the user can change the screen's colors.

    The colors are changed in the viewport of the screen the requester will
    appear on, so that is where you will find them after the palette
    requester returns.

    The selected color is returned, so you can also use this requester to let
    the user select a color.

  INPUTS
    color      - initially selected color of palette (optional, defaults to 1);
    title      - requester window title (optional);
    tagstring  - a tag string to set further attributes (optional);
    resultname - this variable will contain 1 if the user pressed "Ok",
                 or 0 if the user pressed "Cancel" (optional: defaults to
                 "rtresult").

  TAGS
    rt_window        - see rtezrequest()
    rt_reqpos        - see rtezrequest()
    rt_leftoffset    - see rtezrequest()
    rt_topoffset     - see rtezrequest()
    rt_pubscrname    - see rtezrequest()
    rt_screen        - see rtezrequest()
    rt_waitpointer   - see rtezrequest()
    rt_lockwindow    - [ReqTools V38] see rtezrequest()
    rt_screentofront - [ReqTools V38] see rtezrequest()

  RESULT
    newcolor - the color number of the selected color or an empty string ("")
               if the request was canceled.

  EXAMPLES

    color=rtpaletterequest(,"Pick color")

3.7. rtscreenmoderequest() [ReqTools V38] (NOT IMPLEMENTED)
--------------------------

    screenmode = rtscreenmoderequest ( ??? )

  DESCRIPTION

    Get a screen mode from the user.

    The user will be able to pick a screen mode by name, enter the size and
    the number of colors (bitplane depth).

  NOTE: If you have any suggestions for this requester, please send them to
        me, and then maybe I will implement this requester in a future
        version.

4. Copyright
============

The programs and files in this distribution are freely distributable, but are
also Copyright © Rafael D'Halleweyn. They may be freely distributed as long as
no more than a nominal fee is charged to cover time and copying costs.
No commercial usage is allowed, except for W.S. Hawes who has the explicit
permision to include RexxReqTools with ARexx.

4.1. Redistribution
-------------------
You are allowed to redistribute this package. However the minimal distribution
should contain

    rexxreqtools.doc
    rexxreqtools.library
    reqtools.library


5. History
==========

Release 1.0 [library version 37.19]

    First release

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

RexxReqTools was written by Rafael D'Halleweyn. Thanks go to Nico François,
who wrote ReqTools, who was great support and from whom I stole a large part
of this manual. Also thanks to William Hawes for ARexx.

(C) 1992-1993 Rafael D'Halleweyn
