X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-textscreen.c;h=826244cb0a0e9618f086e5a47d133ca751a8de2f;hp=891c8a1c91939512ea5e47ffd50946d6d669de7e;hb=37b4861cb01bf6bd9da41aa1b311a87b0d26fc25;hpb=702f9c313dea66817cf05196d84cd07889e80c51 diff --git a/ui/ncurses/nc-textscreen.c b/ui/ncurses/nc-textscreen.c index 891c8a1..826244c 100644 --- a/ui/ncurses/nc-textscreen.c +++ b/ui/ncurses/nc-textscreen.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "nc-cui.h" #include "nc-textscreen.h" @@ -144,12 +145,18 @@ void text_screen_process_key(struct nc_scr *scr, int key) switch (key) { case 'x': + case 27: /* esc */ screen->on_exit(screen->cui); break; case KEY_DOWN: case KEY_UP: text_screen_scroll(screen, key); break; + case 'h': + if (screen->help_text) + cui_show_help(screen->cui, screen->help_title, + screen->help_text); + break; default: break; } @@ -166,6 +173,14 @@ struct nc_scr *text_screen_scr(struct text_screen *screen) return &screen->scr; } +void text_screen_set_help(struct text_screen *screen, const char *title, + const struct help_text *text) +{ + screen->help_title = title; + screen->help_text = text; + screen->scr.frame.help = _("x=exit, h=help"); +} + static int text_screen_post(struct nc_scr *scr) { nc_scr_frame_draw(scr); @@ -190,6 +205,6 @@ void text_screen_init(struct text_screen *screen, struct cui *cui, screen->scr.frame.ltitle = talloc_strdup(screen, title); screen->scr.frame.rtitle = NULL; - screen->scr.frame.help = "x=exit"; + screen->scr.frame.help = _("x=exit"); scrollok(screen->scr.sub_ncw, true); }