• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..06-Oct-2014-

libmenu/H06-Oct-2014-3,7252,725

CHANGESH A D06-Oct-20141.4 KiB3327

HISTORYH A D06-Oct-2014715 2117

MANUALH A D06-Oct-201413.6 KiB349291

MENU_FORMATH A D06-Oct-201410.2 KiB263201

MakefileH A D06-Oct-20141.9 KiB7537

READMEH A D06-Oct-20143.9 KiB9684

TODOH A D06-Oct-2014122 32

adv_menu.tplH A D06-Oct-201413.6 KiB466395

complex.cH A D06-Oct-201413.3 KiB451361

display.cH A D06-Oct-20141 KiB3721

menugen.pyH A D06-Oct-201410.4 KiB308266

passwordH A D06-Oct-2014502 1917

simple.cH A D06-Oct-20143 KiB8341

test.menuH A D06-Oct-2014832 6146

test2.menuH A D06-Oct-20142.3 KiB143106

README

1          Text User Interface using comboot
2          ---------------------------------
3
4This is a menu system written by Murali Krishnan Ganapathy and ported
5from OpenWatcom to gcc by HPA. It is currently being maintained by the
6original author.
7
8To configure the menus, you need to set up a menu configuration file
9to have the menu items you desire, then build the menu system using
10make.  You can use either simple.c or complex.c as a starting point
11for your own menu configuration file; If your menu system is only going
12to have entries corresponding to things which can be executed directly,
13then you can create a file in ".menu" format instead of the C code.
14
15See MENU_FORMAT for the syntax of .menu files
16
17The resulting code is a 32-bit COMBOOT code, and hence can be executed
18only under syslinux. You can use tools like bochs to help debug your
19code.
20
21Menu Features currently supported are:
22* menu items,
23* submenus,
24* disabled items,
25* checkboxes,
26* invisible items (useful for dynamic menus), and
27* Radio menus,
28* Context sensitive help
29* Authenticated users
30* Editing commands associated with items
31
32The keys used are:
33
34* Arrow Keys, PgUp, PgDn, Home, End Keys
35* Space to switch state of a checkbox
36* Enter to choose the item
37* Escape to exit from it
38* Shortcut keys
39
40Features
41--------
42This is a general purpose menu system implemented using only BIOS calls,
43so it can be executed in a COMBOOT environment as well. It is highly
44customizable. Some features include:
45
46* Status line
47    Display any help information associated with each menu item.
48* Window
49    Specify a window within which the menu system draws all its menu's.
50    It is upto the user to ensure that the menu's fit within the window.
51* Positioning submenus
52    By default, each submenu is positioned just below the corresponding
53    entry of the parent menu. However, the user may position each menu
54    at a specific location of his choice. This is useful, when the menu's
55    have lots of options.
56* Registering handlers for each menu item
57    This is mainly used for checkboxes and radiomenu's, where a selection may
58    result in disabling other menu items/checkboxes
59* Global Screen Handler
60    This is called every time the menu is redrawn. The user can display
61    additional information (usually outside the window where the menu is
62    being displayed). See the complex.c for an example, where the global
63    handler is used to display the choices made so far.
64* Global Keys Handler
65    This is called every time the user presses a key which the menu
66    system does not understand. This can be used to display context
67    sensitive help. See complex.c for how to use this hook to implement
68    a context sensitive help system as well as "On the fly" editing
69    of commands associated with menus.
70* Shortcut Keys
71    With each item one can register a shortcut key from [A-Za-z0-9].
72    Pressing a key within that range, will take you to the next item
73    with that shortcut key (so you can have multiple items with the
74    same shortcut key). The default shortcut key for each item, is
75    the lower case version of the first char of the item in the range
76    [A-Za-z0-9].
77* Escape Keys
78    Each item entry can have a substring enclosed in < and >. This part
79    is highlighted. Can be used to highlight the shortcut keys. By default
80    if an item has a <, then the first char inside < and > in the range
81    [A-Za-z0-9] is converted to lower case and set as the shortcut key.
82* Ontimeout handler
83    The user can register an ontimeout handler, which gets called if
84    no key has been pressed for a user specific amount of time (default 5 min).
85    For an example see the complex.c file.
86
87Credits
88-------
89* The Watcom developers and Peter Anvin for figuring out an OS
90  independent startup code.
91* Thomas for porting the crypt function and removing all C library
92  dependencies
93* Peter Anvin for porting the code to GCC
94
95- Murali (gmurali+guicd@cs.uchicago.edu)
96