diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-12-13 15:15:06 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2014-01-31 08:46:34 +0800 |
commit | 649de37c20f56749ff02c751656787bf2c3d0024 (patch) | |
tree | 2c38bf22cab60882e265327d9bd4c110544e8a9c /ui | |
parent | 6e46a2e3a2d69e1982ed531ed69def8f9a5e8af1 (diff) | |
download | petitboot-649de37c20f56749ff02c751656787bf2c3d0024.zip petitboot-649de37c20f56749ff02c751656787bf2c3d0024.tar.gz |
ui/ncurses: Add help facility to text screens
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/ncurses/nc-textscreen.c | 13 | ||||
-rw-r--r-- | ui/ncurses/nc-textscreen.h | 4 |
2 files changed, 17 insertions, 0 deletions
diff --git a/ui/ncurses/nc-textscreen.c b/ui/ncurses/nc-textscreen.c index 891c8a1..d5b894e 100644 --- a/ui/ncurses/nc-textscreen.c +++ b/ui/ncurses/nc-textscreen.c @@ -150,6 +150,11 @@ void text_screen_process_key(struct nc_scr *scr, int key) 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 +171,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 char *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); diff --git a/ui/ncurses/nc-textscreen.h b/ui/ncurses/nc-textscreen.h index 8afcf49..72b8c8a 100644 --- a/ui/ncurses/nc-textscreen.h +++ b/ui/ncurses/nc-textscreen.h @@ -28,6 +28,8 @@ struct text_screen { int n_lines; int n_alloc_lines; int scroll_y; + const char *help_title; + const char *help_text; void (*on_exit)(struct cui *); }; @@ -42,6 +44,8 @@ void text_screen_clear(struct text_screen *screen); void text_screen_append_line(struct text_screen *screen, const char *fmt, ...) __attribute__((format(printf, 2, 3))); void text_screen_set_text(struct text_screen *screen, const char *text); +void text_screen_set_help(struct text_screen *screen, const char *title, + const char *text); /* interaction */ void text_screen_process_key(struct nc_scr *scr, int key); |