+ boot_editor_populate_device_select(boot_editor, sysinfo);
+
+ boot_editor->widgets.image_l = widget_new_label(set, 0, 0, "image:");
+ boot_editor->widgets.image_f = widget_new_textbox(set, 0, 0,
+ field_size, boot_editor->image);
+
+ boot_editor->widgets.initrd_l = widget_new_label(set, 0, 0, "initrd:");
+ boot_editor->widgets.initrd_f = widget_new_textbox(set, 0, 0,
+ field_size,
+ boot_editor->initrd);
+
+ boot_editor->widgets.dtb_l = widget_new_label(set, 0, 0, "dtb:");
+ boot_editor->widgets.dtb_f = widget_new_textbox(set, 0, 0,
+ field_size, boot_editor->dtb);
+
+ boot_editor->widgets.args_l = widget_new_label(set, 0, 0, "args:");
+ boot_editor->widgets.args_f = widget_new_textbox(set, 0, 0,
+ field_size, boot_editor->args);
+
+ boot_editor->widgets.ok_b = widget_new_button(set, 0, 0, 6,
+ "OK", ok_click, boot_editor);
+ boot_editor->widgets.cancel_b = widget_new_button(set, 0, 0, 6,
+ "Cancel", cancel_click, boot_editor);
+}
+
+void boot_editor_update(struct boot_editor *boot_editor,
+ const struct system_info *sysinfo)
+{
+ int height;
+
+ widgetset_unpost(boot_editor->widgetset);
+
+ height = pad_height(sysinfo ? sysinfo->n_blockdevs : 0);
+ if (getmaxy(boot_editor->pad) < height) {
+ delwin(boot_editor->pad);
+ boot_editor->pad = newpad(height, COLS);
+ widgetset_set_windows(boot_editor->widgetset,
+ boot_editor->scr.main_ncw,
+ boot_editor->pad);
+ }
+
+ boot_editor_populate_device_select(boot_editor, sysinfo);
+
+ boot_editor_layout_widgets(boot_editor);
+
+ widgetset_post(boot_editor->widgetset);
+
+ pad_refresh(boot_editor);