Multiple Document Access
![]() |
Phoenix and Chimera have enhanced multiple form handling ability and provide support for switching between single document interface (SDI) and multiple document interface (MDI). |
Application Launcher Drop Down Menu
‘Hydra4GL’ allows you also to create a front end application launcher menu with pull down menus. The menu structure, contents and actions can be defined using a tool (MakeMenu) which stores the data in the database or dynamically within your 4GL application code.
MakeMenu Tool
'MakeMenu' is a graphical tool (written in 4GL) which allows the developer to create/manage/modify the application launcher menu.

The developer creates and modifies sub menus, server application launch and local client application launch configurations. The configurations are stored in a database and processed by the login program.
User Authentication
The application launcher menu bar can either manage its own users and groups or use the application server's Operating System user/password authentication system. Additionally, the three most common security encryption and validation methods Crypt, Shadow and PAM are fully supported.
License Utilisation
Any 4GL application which is launched from this menu will utilize the same runtime license (one seat license for many applications).
Example: Nested Menu Bar

This is an example of how a menu bar could look using a customized application launcher menu bar. It should also be noted that any application which is launched from the menu bar is utilizing one and the same concurrent runtime license.
Defining the application launcher menu bar dynamically
'Hydra4GL' 4.3 also allows the developer to dynamically create and manage the application launcher menu bar within the 4GL code. The following set of functions can be used for the management:
create_menu()
Creates the main menu, returns the menu ID (destroys existing menu)
menu_add_option(menu_id INTEGER, label VARCHAR(255), action_id INTEGER)
Add a command to the menu identified by menu ID
menu_add_submenu(menu_id INTEGER, label VARCHAR(255) )
Add a submenu to the menu identified by menu ID (returns the menu ID)
menu_publish()
Send the menu to the client. Once published, you cannot change it
execute_menu()
Get a user response from the menu. This is not buffered, so the menu is useless unless this is called. Returns the 'action_id' of the option pressed.
