MA_QUIT, /* Quit to CLI */
MA_EXIT, /* Exit to higher-level menu */
MA_EXIT_UNRES, /* Unresolved exit */
+ MA_HELP, /* Show help text */
};
struct menu_entry {
const char *passwd;
char *helptext;
const char *cmdline;
+ const char *background;
struct menu *submenu;
struct menu_entry *next; /* Linked list of all labels across menus */
int entry; /* Entry number inside menu */
clear = 1;
draw_row(entry - top + 4 + VSHIFT, -1, top, 0, 0);
break;
+ case MA_HELP:
+ key = show_message_file(me->cmdline, me->background);
+ /* If the exit was an F-key, display that help screen */
+ show_fkey(key);
+ done = 0;
+ clear = 1;
+ break;
default:
done = 0;
break;
me->submenu = ld->submenu;
break;
+ case MA_HELP:
+ me->cmdline = refstr_get(ld->kernel);
+ me->background = refstr_get(ld->append);
+ break;
+
default:
break;
}
}
} else if (looking_at(p, "start")) {
start_menu = m;
+ } else if (looking_at(p, "help")) {
+ if (ld.label) {
+ ld.action = MA_HELP;
+ p = skipspace(p + 4);
+
+ refstr_put(ld.kernel);
+ ld.kernel = refdup_word(&p);
+
+ if (ld.append) {
+ refstr_put(ld.append);
+ ld.append = NULL;
+ }
+
+ if (*p) {
+ p = skipspace(p);
+ ld.append = refdup_word(&p); /* Background */
+ }
+ }
} else if ((ep = looking_at(p, "resolution"))) {
int x, y;
x = strtoul(ep, &ep, 0);
screen (25 for text mode, 28 for VESA graphics mode.)
-F1 textfile background
+F1 textfile [background]
...
-F12 textfile background
+F12 textfile [background]
Displays full-screen help (also available at the command line.)
The same control code sequences as in the command line
interface are supported, although some are ignored.
- Additionally, a second argument allows a different background
- image (see MENU BACKGROUND for supported formats) to be displayed.
+ Additionally, a optional second argument allows a different
+ background image (see MENU BACKGROUND for supported formats)
+ to be displayed.
+
+
+MENU HELP textfile [background]
+
+ Creates a menu entry which, when selected, displays
+ full-screen help in the same way as the F-key help.
The menu system honours the TIMEOUT command; if TIMEOUT is specified