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;
        }
        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);
 
        int             n_lines;
        int             n_alloc_lines;
        int             scroll_y;
+       const char      *help_title;
+       const char      *help_text;
        void            (*on_exit)(struct cui *);
 };
 
 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);