]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-cui.c
ui/ncurses: Add support for help screens
[petitboot] / ui / ncurses / nc-cui.c
index e3422734ebd06d83ec30415b8012c89beb54435a..650e90345cffa723abc1a04146b7103889ff17bd 100644 (file)
@@ -38,6 +38,7 @@
 #include "nc-boot-editor.h"
 #include "nc-config.h"
 #include "nc-sysinfo.h"
+#include "nc-helpscreen.h"
 
 static void cui_start(void)
 {
@@ -246,6 +247,28 @@ void cui_show_config(struct cui *cui)
        cui_set_current(cui, config_screen_scr(cui->config_screen));
 }
 
+static void cui_help_exit(struct cui *cui)
+{
+       cui_set_current(cui, help_screen_return_scr(cui->help_screen));
+       talloc_free(cui->help_screen);
+       cui->help_screen = NULL;
+}
+
+void cui_show_help(struct cui *cui, const char *title, const char *text)
+{
+       if (!cui->current)
+               return;
+
+       if (cui->help_screen)
+               return;
+
+       cui->help_screen = help_screen_init(cui, cui->current,
+                       title, text, cui_help_exit);
+
+       if (cui->help_screen)
+               cui_set_current(cui, help_screen_scr(cui->help_screen));
+}
+
 /**
  * cui_set_current - Set the currently active screen and redraw it.
  */