+ show = screen->autoboot_enabled;
+
+ if (show)
+ y += 1;
+
+ wl = widget_label_base(screen->widgets.boot_order_l);
+ widget_set_visible(wl, show);
+ widget_move(wl, y, screen->label_x);
+
+ wf = widget_subset_base(screen->widgets.boot_order_f);
+ widget_move(wf, y, screen->field_x);
+ wl = widget_label_base(screen->widgets.boot_empty_l);
+ widget_move(wl, y, screen->field_x);
+
+ if (widget_subset_height(screen->widgets.boot_order_f)) {
+ widget_set_visible(wl, false);
+ widget_set_visible(wf, show);
+ y += show ? widget_height(wf) : 0;
+ } else {
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, false);
+ y += show ? 1 : 0;
+ }
+
+ if (show) {
+ y += 1;
+ widget_move(widget_button_base(screen->widgets.boot_add_b),
+ y++, screen->field_x);
+ widget_move(widget_button_base(screen->widgets.boot_any_b),
+ y++, screen->field_x);
+ widget_move(widget_button_base(screen->widgets.boot_none_b),
+ y, screen->field_x);
+ }
+
+ wf = widget_button_base(screen->widgets.boot_add_b);
+ if (widget_subset_n_inactive(screen->widgets.boot_order_f) && show)
+ widget_set_visible(wf, true);
+ else
+ widget_set_visible(wf, false);
+
+ if (show)
+ y += 2;
+
+ widget_set_visible(widget_button_base(screen->widgets.boot_any_b), show);
+ widget_set_visible(widget_button_base(screen->widgets.boot_none_b), show);
+
+ wf = widget_textbox_base(screen->widgets.timeout_f);
+ wl = widget_label_base(screen->widgets.timeout_l);
+ wh = widget_label_base(screen->widgets.timeout_help_l);
+ widget_set_visible(wl, screen->autoboot_enabled);
+ widget_set_visible(wf, screen->autoboot_enabled);
+ widget_set_visible(wh, screen->autoboot_enabled);
+ if (screen->autoboot_enabled) {
+ widget_set_visible(wh, screen->autoboot_enabled);
+ widget_move(wl, y, screen->label_x);
+ widget_move(wf, y, screen->field_x);
+ widget_move(wh, y, screen->field_x + widget_width(wf) + 1);
+ y += 2;
+ }
+
+ if (screen->ipmi_override) {
+ wl = widget_label_base(screen->widgets.ipmi_type_l);
+ widget_set_visible(wl, true);
+ widget_move(wl, y, screen->label_x);
+ y += 1;
+
+ wl = widget_label_base(screen->widgets.ipmi_clear_l);
+ wf = widget_checkbox_base(screen->widgets.ipmi_clear_cb);
+ widget_set_visible(wl, true);
+ widget_set_visible(wf, true);
+ widget_move(wl, y, screen->label_x);
+ widget_move(wf, y, screen->field_x);
+ y += 1;
+ }
+
+ y += 1;
+
+ y += layout_pair(screen, y, screen->widgets.network_l,
+ widget_select_base(screen->widgets.network_f));
+
+ y += 1;
+
+ /* conditionally show iface select */
+ wl = widget_label_base(screen->widgets.iface_l);
+ wf = widget_select_base(screen->widgets.iface_f);
+
+ show = screen->net_conf_type == NET_CONF_TYPE_DHCP_ONE ||
+ screen->net_conf_type == NET_CONF_TYPE_STATIC;
+
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, show);
+
+ if (show)
+ y += layout_pair(screen, y, screen->widgets.iface_l, wf) + 1;
+
+ /* conditionally show static IP params */
+ show = screen->net_conf_type == NET_CONF_TYPE_STATIC;
+
+ wl = widget_label_base(screen->widgets.ip_addr_l);
+ wf = widget_textbox_base(screen->widgets.ip_addr_f);
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, show);
+ x = screen->field_x + widget_width(wf) + 1;
+
+ if (show)
+ layout_pair(screen, y, screen->widgets.ip_addr_l, wf);
+
+ wl = widget_label_base(screen->widgets.ip_mask_l);
+ wf = widget_textbox_base(screen->widgets.ip_mask_f);
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, show);
+
+ if (show) {
+ widget_move(wl, y, x);
+ widget_move(wf, y, x + 2);
+ }
+
+ /* help for IP/mask */
+ wh = widget_label_base(screen->widgets.ip_addr_mask_help_l);
+ widget_set_visible(wh, show);
+ if (show) {
+ widget_move(wh, y, help_x);
+ y++;
+ }
+
+ wl = widget_label_base(screen->widgets.gateway_l);
+ wf = widget_textbox_base(screen->widgets.gateway_f);
+ wh = widget_label_base(screen->widgets.gateway_help_l);
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, show);
+ widget_set_visible(wh, show);
+
+ if (show) {
+ layout_pair(screen, y, screen->widgets.gateway_l, wf);
+ widget_move(wh, y, help_x);
+ y++;
+ }
+
+ wl = widget_label_base(screen->widgets.url_l);
+ wf = widget_textbox_base(screen->widgets.url_f);
+ wh = widget_label_base(screen->widgets.url_help_l);
+ widget_set_visible(wl, show);
+ widget_set_visible(wf, show);
+ widget_set_visible(wh, show);
+
+ if (show) {
+ layout_pair(screen, y, screen->widgets.url_l, wf);
+ widget_move(wh, y, help_x);
+ y++;
+ }
+
+ wh = widget_label_base(screen->widgets.dns_help_l);
+ layout_pair(screen, y, screen->widgets.dns_l,
+ widget_textbox_base(screen->widgets.dns_f));
+ widget_move(wh, y, help_x);