From: Ted Holt To: The IBM Application Development Team
I have a suggestion for SDA. I would like to be able to create rolling menus. The only way I know to do that is to use the UIM tag language. Would it be feasible to have SDA generate rolling menus?
From: Edmund Reinhardt To: Ted Holt
SDA option 2 is basically a front-end to the Create Menu (CRTMNU) command. The CRTMNU command will take three kinds of input:
1. A display file with one record and a message file full of commands. 2. A UIM panel group. 3. A program name.
The first option is fully covered already by SDA option 2. Since there can be only one record in the display file, these menus can't roll.
The second option is the one you know about, using the UIM tag language. This language is flexible, powerful and not too difficult to use. We could have SDA generate the UIM panel group; but after we gave the matter some consideration, this method does not look so attractive.
Because UIM is a tag-based language, you tell it the essentials (menu item names, associated commands, associated help) and it figures out the rest for you, including the layout. SDA, on the other hand, is a layout tool. Its strength is a WYSIWYG way of specifying how you want the elements of the menu to appear. In UIM, you have no choice where things will appear, so SDA and UIM do not get along.
As a result, we have concluded that programmers are better off using UIM directly. Just take a boilerplate menu (see Figures 3 and 4) and change the values to what you need. You can add as many options as you want (up to 999) to the menu, and UIM will take care of creating the necessary additional pages.
The third option is completely up to you. Write a program to do whatever you want and CRTMNU will generate a menu object. Total flexibility and total responsibility are yours.
Editor's Note: For more information about UIM menus, refer to IBM's Guide to Programming and Application and Help Displays (SC41-0011, CD-ROM QBKA7902) or "Create IBM-style Rolling Menus with UIM," MC, July 1993.
Figure 3 MENUSHELL UIM Menu
.*===============================================================* .* To compile: * .* * .* CRTMNU MENU(XXX/MENUSHELL) TYPE(*UIM) + * .* SRCFILE(XXX/QMNUSRC) * .* * .*===============================================================* :pnlgrp. :keyl name=small help=FKHLP. :keyi key=f1 help=FKHLP action='HELP'. :keyi key=f3 help=FKHLP action='EXIT' varupd=no .F3=Exit :keyi key=f4 help=FKHLP action='PROMPT' .F4=Prompt :keyi key=f9 help=FKHLP action='RETRIEVE' .F9=Retrieve :keyi key=f12 help=FKHLP action='CANCEL' varupd=no .F12=Cancel :keyi key=enter help=FKHLP action='ENTER'. :keyi key=help help=FKHLP action='HELP'. :keyi key=pageup help=FKHLP action='PAGEUP'. :keyi key=pagedown help=FKHLP action='PAGEDOWN'. :ekeyl. :panel name=main help=MAINHLP keyl=small .Menu Shell :menu depth='*' scroll=yes. :topinst .Select one of the following: :menugrp .ADT Utilities :menui help=OP1HLP option=1 action='CMD strpdm' .Start PDM :menui help=OP2HLP option=2 action='CMD strsda' .Start SDA :menui help=OP3HLP option=3 action='CMD strdfu' .Start DFU :emenugrp. :menugrp .Others :menui help=OP90HLP option=90 action='CMD signoff' .Sign off :emenugrp. :emenu. :cmdline size=long .Selection or command :epanel. :help name=FKHLP .Function key help :ehelp. :help name=MAINHLP .Main help :ehelp. :help name=OP1HLP .Option 1 help :ehelp. :help name=OP2HLP .Option 2 help :ehelp. :help name=OP3HLP .Option 3 help :ehelp. :help name=OP90HLP .Option 90 help :ehelp. :epnlgrp.
Figure 4 MENUSHELL Screen
Menu Shell System: MC PGMR Select one of the following: ADT Utilities 1. Start PDM 2. Start SDA 3. Start DFU Others 90. Sign off Bottom Selection or command ===> F3=Exit F4=Prompt F9=Retrieve F12=Cancel