X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.c;h=d74c1a46ece00804e4049835a907c0ad2e20e4e2;hb=2a6f3ebc8263e94441c2c865a6b28dae40e35990;hp=5f411963d0b10ed28c92aab472935b2c8aaa91f7;hpb=651940467773d2e679f9210e02f4654fb05cd449;p=petitboot diff --git a/ui/ncurses/nc-cui.c b/ui/ncurses/nc-cui.c index 5f41196..d74c1a4 100644 --- a/ui/ncurses/nc-cui.c +++ b/ui/ncurses/nc-cui.c @@ -34,6 +34,7 @@ #include "process/process.h" #include "ui/common/discover-client.h" #include "nc-cui.h" +#include "nc-config.h" #include "nc-sysinfo.h" static struct cui_opt_data *cod_from_item(struct pmenu_item *item) @@ -251,6 +252,20 @@ void cui_show_sysinfo(struct cui *cui) cui_set_current(cui, sysinfo_screen_scr(cui->sysinfo_screen)); } +static void cui_config_exit(struct cui *cui) +{ + cui_set_current(cui, &cui->main->scr); + talloc_free(cui->config_screen); + cui->config_screen = NULL; +} + +void cui_show_config(struct cui *cui) +{ + cui->config_screen = config_screen_init(cui, cui->config, + cui->sysinfo, cui_config_exit); + cui_set_current(cui, config_screen_scr(cui->config_screen)); +} + /** * cui_set_current - Set the currently active screen and redraw it. */ @@ -530,12 +545,19 @@ static void cui_update_sysinfo(struct system_info *sysinfo, void *arg) cui_update_mm_title(cui); } +static void cui_update_config(struct config *config, void *arg) +{ + struct cui *cui = cui_from_arg(arg); + cui->config = talloc_steal(cui, config); +} + static struct discover_client_ops cui_client_ops = { .device_add = NULL, .boot_option_add = cui_boot_option_add, .device_remove = cui_device_remove, .update_status = cui_update_status, .update_sysinfo = cui_update_sysinfo, + .update_config = cui_update_config, }; /**