Short: Gadtools listview for AREXX. V1.0 Author: dickow@uidaho.edu (Robert Dickow) Uploader: dickow uidaho edu (Robert Dickow) Type: util/rexx Version: $VER: 2.3 Architecture: m68k-amigaos Distribution: World Basename: rxlistreq The rxlistreq executable in this archive was coded in pure Amiga JForth 3.1 over a couple of hot summer evenings. Version 2.0 was revised one cool autumn afternoon and subsequently bug-fixed to version 2.3 for the present release. This archive has an AREXX host and sample arexx script for an example of how to use AREXX and the supplied host program to allow your AREXX scripts to open a listview with a list of items of any size that you define. The user may click on an item to indicate a choice, or click on a CANCEL button or the window's close button, or hit HELP or the ESC key. All user input is returned to the calling program when the window is closed. This program uses native GadTools gadgets, and at the moment there is no support for multiple selection or editing of items in the listview gadget. The program provides a simple but attractive window that is resizable as well as customizable from the rexx script for size, position, and label names. It uses the screen font by default. You can open it on your own public screens too. You may have the listview display a sorted list. In version 2.0 only an ascending order may be specified using the RXLV.SORTED = 'YES' variable as a flag. Complete documentation is provided by the included rxlistreq.readme and is also included in the lvtest.rexx program. See the history file (new in version 2.1) to see additional notes. Run the lvtest.rexx script by typing 'rx lvtest'. rxlistreq needs to be in the same directory as the arexx script lvtest.rexx unless you edit the script to define the full path to the host executable rxlistreq. Enjoy! Bob Dickow (dickow@uidaho.edu) /* ************************************************************ */ /* Simple arexx script to test and demo rxlistreq host. */ /* The host will display a gadtools listview in a window */ /* and displays a list specified by the calling arexx script. */ /* */ /* After the user clicks on an item or cancels the requester, */ /* the host will return control to the calling arexx program. */ /* The host will remain resident until it recieves a 'CLOSE' */ /* command. */ /* ************************************************************ */ /* *********************************************************************** */ /* USAGE: Start up the rxlistreq host through a shell command, then */ /* address the host as ADDRESS "RXLISTREQ" (or if you want to specify */ /* a host name, add it after the shell callup of rxlistreq as a cli */ /* parameter: run rxlistreq LISTVIEW) */ /* Then 'send' the command, after using ADDRESS "" as: */ /* rxlistreq [WINDOW_PARMS_STEMNAME] */ /* */ /* The last parameter is optional, and will default to "RXLV" */ /* Parameters: */ /* : This number tells the host to show a list with the */ /* specified number of elements. The AREXX calling script or program */ /* must declare a list as a stem variable indexed from 0, as in: */ /* STEM.0 = "Hello" ; STEM.1 = "GOODBYE" ; STEM.2 = "342" .... */ /* The host will use the stem name in the parameter, with no default */ /* to fall back to. */ /* : The AREXX stem variable name for the list of items. */ /* This list should be indexed from 0, and may continue to any ex- */ /* tent. The indexes should be successive integer numbers (1, 2 etc) */ /* : This is an optional stem variable name that */ /* the script can use to pass various parameters for the listview */ /* window display. The default stem is "RXLV". The choices are: */ /* */ /* RXLV.LVLABEL -- A String to place above the listview */ /* RXLV.BUTTONLABEL -- A String to place inside the CANCEL button */ /* RXLV.XPOS -- The screen X position to open the window */ /* RXLV.YPOS -- The screen Y position to open the window */ /* (if XY not specified, or set to -1, opens window near mouse pointer) */ /* RXLV.WIDTH -- The desired width of the window */ /* RXLV.HEIGHT -- The desired height of the window */ /* (Will not be smaller than 150 x 200 pixels) */ /* RXLV.SCREEN -- Name of the public screen on which to display */ /* the window. Default is the Workbench. */ /* RXLV.SORTED -- Flag that, when set to 'YES' will tell the host */ /* to display a sorted list. The caller's array is */ /* untouched. Reset the value to anything else to */ /* return to displaying the original ordering. */ /* RXLV.CENTERED -- Flag that, when set to 'YES' and when the window */ /* XY location is not specified, will open the */ /* window with the mouse pointer centered in the */ /* window, if possible. The programmer should be */ /* aware that this can result in accidental user */ /* input should the window open while the user is */ /* playing with the mouse buttons. */ /* *********************************************************************** */ /* ***************************************************************************** */ /* The rxlistreq host program returns the following variables, which will */ /* be created in the symbol table if not already declared: */ /* [RXLV].CLICKED = number of the item chosen, unset if user cancels or quits. */ /* [RXLV].EXIT = key (or the close gadget) that the user used to exit, if */ /* the user decides to abort the window and not make a choice from the */ /* list. Currently the user may abort by clicking the close gadget or */ /* the CANCEL button gadget, or by typing the ESC key or the HELP key. */ /* EXITCHOICE will be set to strings "CANCEL, CLOSE, ESC, or HELP" */ /* respectively, or to LIST if the listview is clicked. */ /* ***************************************************************************** */