Text User Interface using comboot --------------------------------- This is a menu system written by Murali Krishnan Ganapathy and ported from OpenWatcom to gcc by HPA. To configure the menus, you need to set up a menu configuration file to have the menu items you desire, then build the menu system using make. You can use either simple.c or complex.c as a starting point for your own menu configuration file; then add the name with a .com extension to the MENUS list in the Makefile. The resulting code runs both under DOS as well as SYSLINUX. A trivial memory allocation routine is implemented, to reduce the memory footprint of this utility. Menu Features currently supported are: * menu items, * submenus, * disabled items, * checkboxes, * invisible items (useful for dynamic menus), and * Radio menus The keys used are: * Arrow Keys, PgUp, PgDn, Home, End Keys * Space to switch state of a checkbox * Enter to choose the item * Escape to exit from it * Shortcut keys Features -------- This is a general purpose menu system implemented using only BIOS calls, so it can be executed in a COMBOOT environment as well. It is highly customizable. Some features include: * Status line Display any help information associated with each menu item. * Window Specify a window within which the menu system draws all its menu's. It is upto the user to ensure that the menu's fit within the window. * Positioning submenus By default, each submenu is positioned just below the corresponding entry of the parent menu. However, the user may position each menu at a specific location of his choice. This is useful, when the menu's have lots of options. * Registering handlers for each menu item This is mainly used for checkboxes and radiomenu's, where a selection may result in disabling other menu items/checkboxes * Global Handler This is called every time the menu is redrawn. The user can display additional information (usually outside the window where the menu is being displayed). See the complex.c for an example, where the global handler is used to display the choices made so far. * Shortcut Keys With each item one can register a shortcut key from [A-Za-z0-9]. Pressing a key within that range, will take you to the next item with that shortcut key (so you can have multiple items with the same shortcut key). The default shortcut key for each item, is the lower case version of the first char of the item in the range [A-Za-z0-9]. * Escape Keys Each item entry can have a substring enclosed in < and >. This part is highlighted. Can be used to highlight the shortcut keys. By default if an item has a <, then the first char inside < and > in the range [A-Za-z0-9] is converted to lower case and set as the shortcut key. * Ontimeout handler The user can register an ontimeout handler, which gets called if no key has been pressed for a user specific amount of time (default 5 min). For an example see the complex.c file. Credits ------- * The Watcom developers and Peter Anvin for figuring out an OS independent startup code. - Murali (gmurali+guicd@cs.uchicago.edu)