Menu Editor
Introduction
The BASIS Menu Editor utility, _msedit.utl, 
 is one of the powerful tools provided in the EUS Toolkit. It procides 
 the capability to quickly design and create the menus that will be used 
 to navigate through an application.
The BASIS Menu Editor provides a menu-driven approach to designing menus. 
 With a few simple keystrokes you can:
- 
                                                    
Select from eight different menu types.
 - 
                                                    
Set up the size and position of the menu on the screen.
 - 
                                                    
Choose to display submenus and their style (sliding or cascading).
 - 
                                                    
Specify the offset direction and distance of submenus from the main menu.
 - 
                                                    
Specify the colors of menu outlines, backgrounds, titles, detail items, and highlights.
 
Menus created with the BASIS Menu Editor are called static menus and 
 are stored in menu files. Each record in a menu file completely defines 
 one menu. This is an important relationship to remember. One menu equals 
 one menu record.
Related menus, such as submenus or independent menus that are part of the 
 same program, should all be kept in the same file. However, there are 
 no restrictions. Some developers may want to store all of their menus 
 in one file, while others may choose to store different types of menus 
 in different files.
Once a static menu file is defined, individual menus can be accessed from 
 it by CALLing _msdrv.utl. 
 See _msdrv.utl 
 for additional information.
Menu Structure
The structure of the menu file for these menus would be similar to:
I. Menu File AR
- 
                                                    
Menu record "main"
- 
                                                            
- 
                                                                    
Header of "main"
 - 
                                                                    
Detail of "main"
- 
                                                                            
Submenu: See menu record "maint"
 - 
                                                                            
Submenu: See menu record "reports"
 
 - 
                                                                            
 
 - 
                                                                    
 
 - 
                                                            
 - 
                                                    
Menu record "maint"
- 
                                                            
- 
                                                                    
Header of "maint"
 - 
                                                                    
Detail of "maint"
- 
                                                                            
Program, Customer Maintenance
 - 
                                                                            
Program, Terms Maintenance
 
 - 
                                                                            
 
 - 
                                                                    
 
 - 
                                                            
 - 
                                                    
Menu record "reports"
- 
                                                            
- 
                                                                    
Header of "reports"
 - 
                                                                    
Detail of "reports"
- 
                                                                            
Program, Aged Trial Balance
 - 
                                                                            
Program, Past Due Customers
 - 
                                                                            
Program, Customer List
 - 
                                                                            
Submenu: See menu record "analysis"
 
 - 
                                                                            
 
 - 
                                                                    
 
 - 
                                                            
 - 
                                                    
Menu record "analysis"
- 
                                                            
- 
                                                                    
Header of "analysis"
 - 
                                                                    
Detail of "analysis"
- 
                                                                            
Program, Profit Analysis
 - 
                                                                            
Program, AR Analysis
 
 - 
                                                                            
 
 - 
                                                                    
 
 - 
                                                            
 
The menu file AR 
 must contain a menu record for each menu described above. Menu records 
 contain Header information, which describes the characteristics of the 
 menu as a whole, as well as Detail information, which describes the items, 
 or selections. Detail information specifies how each item appears in the 
 menu and what action is taken when each item is selected by the end-user.
Menu files are stored in a special directory. This directory is named in 
 the global string (MENU). Assume the Menus library is defined as follows 
 in the configuration file:
MENUS=(ROOT)menus/
A menu file name would be called in this format:
(ROOT)menus/menu_name.m(LANGUAGE)
The .m(LANGUAGE) 
 extension is appended automatically by the BASIS Menu Editor and consists 
 of a lower case m followed 
 by the (LANGUAGE) global string, which is the current language code.
This makes it simple to internationalize the menus for an application. 
 When the menus are complete, simply copy the menu file to another file 
 with a different language code. Then, only the new menu records need to 
 be edited to translate the titles, menu items, and prompts into the second 
 language. Parameters that determine menu type, size, screen position, 
 and behavior of the menu may remain unchanged. Changing the (LANGUAGE) 
 global in the configuration file then causes the application to use the 
 translated menus.