]> git.decadent.org.uk Git - ap-utils.git/blobdiff - lib/menu.c
Imported Upstream version 1.5~pre3~a
[ap-utils.git] / lib / menu.c
index 86ca3a191d3b06fe6d3a0c83f237dc914fcfbf7a..e2cfaef3178235bfd66da2f78e2b46d771892cb6 100644 (file)
@@ -24,6 +24,7 @@
 #include "ap-utils.h"
 
 extern WINDOW *sub_for_menu;
+extern char set_oeminfo_allowed;
 
 void uni_menu(struct umitems *umenu, int num)
 {
@@ -43,49 +44,54 @@ void uni_menu(struct umitems *umenu, int num)
 
     post_menu(menu);
 
-    wrefresh(sub_for_menu);
     print_help(umenu[0].help);
 
     while (1) {
+       wrefresh(sub_for_menu);
        switch (getch()) {
        case KEY_DOWN:
        case 'j':
        case 'J':
            menu_driver(menu, REQ_NEXT_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_RIGHT:
        case 'l':
        case 'L':
            menu_driver(menu, REQ_LAST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_LEFT:
        case 'h':
        case 'H':
            menu_driver(menu, REQ_FIRST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_UP:
        case 'k':
        case 'K':    
            menu_driver(menu, REQ_PREV_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_PPAGE:
        case KEY_HOME:
            menu_driver(menu, REQ_FIRST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case KEY_NPAGE:
        case KEY_END:
            menu_driver(menu, REQ_LAST_ITEM);
-           wrefresh(sub_for_menu);
            break;
        case 'q':
        case 'Q':
            idx = num - 2;
            goto quitmenu;
+       case 's':
+       case 'S':
+           if (set_oeminfo_allowed) {
+               set_menu_mark(menu, " ");
+               set_menu_fore(menu, A_NORMAL);
+               wrefresh(sub_for_menu);
+               atmel_set_oeminfo();
+               set_menu_mark(menu, "-");
+               set_menu_fore(menu, A_STANDOUT);
+           }
+           break;
        /* Enter */
        case 10:
            idx = item_index(current_item(menu));
@@ -104,11 +110,12 @@ quitmenu:
            }
            if (umenu[idx].is_menu)
                unpost_menu(menu);
+
            umenu[idx].func();
-           if (umenu[idx].is_menu) {
+
+           if (umenu[idx].is_menu)
                post_menu(menu);
-               wrefresh(sub_for_menu);
-           }
+
            break;
        default:
            continue;