#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)
nc_scr_status_printf(cui->current, "Booting %s...", cod->name);
- def_prog_mode();
-
result = discover_client_boot(cui->client, NULL, cod->opt, cod->bd);
- reset_prog_mode();
- redrawwin(cui->current->main_ncw);
-
if (result) {
nc_scr_status_printf(cui->current,
"Failed: boot %s", cod->bd->image);
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.
*/
if (cui->sysinfo_screen)
sysinfo_screen_update(cui->sysinfo_screen, sysinfo);
+ /* ... and do the same with the config screen */
+ if (cui->config_screen)
+ config_screen_update(cui->config_screen, cui->config, sysinfo);
+
cui_update_mm_title(cui);
}
{
struct cui *cui = cui_from_arg(arg);
cui->config = talloc_steal(cui, config);
+
+ if (cui->config_screen)
+ config_screen_update(cui->config_screen, config, cui->sysinfo);
+}
+
+int cui_send_config(struct cui *cui, struct config *config)
+{
+ return discover_client_send_config(cui->client, config);
}
static struct discover_client_ops cui_client_ops = {