- label = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(dialog_vbox), label, TRUE, FALSE, 3);
- controls = gtk_hbox_new(FALSE, 10);
- gtk_box_pack_start(GTK_BOX(dialog_vbox), controls, TRUE, TRUE, 0);
- vbox = gtk_vbox_new(FALSE, 3);
- gtk_box_pack_start(GTK_BOX(controls), vbox, FALSE, FALSE, 0);
- hostname = gtk_check_button_new_with_label(_("Send Hostname"));
- gtk_signal_connect(GTK_OBJECT(hostname), "toggled",
- G_CALLBACK(on_toggle), NULL);
- gtk_box_pack_start(GTK_BOX(vbox), hostname, FALSE, FALSE, 3);
- fqdn = gtk_check_button_new_with_label(_("Send FQDN"));
- gtk_signal_connect(GTK_OBJECT(fqdn), "toggled",
- G_CALLBACK(on_toggle), NULL);
- gtk_box_pack_start(GTK_BOX(vbox), fqdn, FALSE, FALSE, 3);
- clientid = gtk_check_button_new_with_label(_("Send ClientID"));
- gtk_box_pack_start(GTK_BOX(vbox), clientid, FALSE, FALSE, 3);
- duid = gtk_check_button_new_with_label(_("Send DUID"));
- gtk_signal_connect(GTK_OBJECT(clientid), "toggled",
- G_CALLBACK(on_toggle), duid);
- gtk_signal_connect(GTK_OBJECT(duid), "toggled",
- G_CALLBACK(on_toggle), NULL);
- gtk_box_pack_start(GTK_BOX(vbox), duid, FALSE, FALSE, 3);
- arp = gtk_check_button_new_with_label(_("Enable ARP checking"));
- gtk_box_pack_start(GTK_BOX(vbox), arp, FALSE, FALSE, 3);
- ipv4ll = gtk_check_button_new_with_label(_("Enable Zeroconf"));
- gtk_box_pack_start(GTK_BOX(vbox), ipv4ll, FALSE, FALSE, 3);
- gtk_signal_connect(GTK_OBJECT(arp), "toggled",
- G_CALLBACK(on_toggle), ipv4ll);
- gtk_signal_connect(GTK_OBJECT(ipv4ll), "toggled",
- G_CALLBACK(on_toggle), NULL);
-
- hbox = gtk_hbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(dialog_vbox), hbox, TRUE, TRUE, 3);
- label = gtk_button_new_from_stock(GTK_STOCK_DELETE);
- gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_signal_connect(GTK_OBJECT(label), "clicked", on_delete, NULL);
- label = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- gtk_signal_connect(GTK_OBJECT(label), "clicked",
- dhcpcd_prefs_close, NULL);
-
- show_config(NULL, NULL);
+ w = gtk_hseparator_new();
+ gtk_box_pack_start(GTK_BOX(dialog_vbox), w, true, false, 3);
+ controls = gtk_vbox_new(false, 10);
+ gtk_widget_set_sensitive(controls, false);
+ gtk_box_pack_start(GTK_BOX(dialog_vbox), controls, true, true, 0);
+ vbox = gtk_vbox_new(false, 3);
+ gtk_box_pack_start(GTK_BOX(controls), vbox, false, false, 0);
+ autoconf = gtk_check_button_new_with_label(
+ _("Automatically configure empty options"));
+ gtk_box_pack_start(GTK_BOX(vbox), autoconf, false, false, 3);
+ table = gtk_table_new(6, 2, false);
+ gtk_box_pack_start(GTK_BOX(controls), table, false, false, 0);
+
+#define attach_label(a, b, c, d, e) \
+ do { \
+ gtk_misc_set_alignment(GTK_MISC(a), 0.0, 0.5); \
+ gtk_table_attach(GTK_TABLE(table), a, b, c, d, e, \
+ GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 3, 3); \
+ } while (0)
+#define attach_entry(a, b, c, d, e) \
+ gtk_table_attach(GTK_TABLE(table), a, b, c, d, e, \
+ GTK_EXPAND | GTK_FILL | GTK_SHRINK, GTK_FILL | GTK_SHRINK, 3, 3);
+
+ w = gtk_label_new(_("IP Address:"));
+ address = gtk_entry_new();
+ gtk_entry_set_max_length(GTK_ENTRY(address), 15);
+ g_signal_connect(G_OBJECT(address), "focus-out-event",
+ G_CALLBACK(address_lost_focus), NULL);
+ attach_label(w, 0, 1, 0, 1);
+ attach_entry(address, 1, 2, 0, 1);
+
+ w = gtk_label_new(_("Router:"));
+ router = gtk_entry_new();
+ gtk_entry_set_max_length(GTK_ENTRY(router), 12);
+ g_signal_connect(G_OBJECT(router), "focus-out-event",
+ G_CALLBACK(entry_lost_focus), NULL);
+ attach_label(w, 0, 1, 2, 3);
+ attach_entry(router, 1, 2, 2, 3);
+
+ w = gtk_label_new(_("DNS Servers:"));
+ dns_servers = gtk_entry_new();
+ g_signal_connect(G_OBJECT(dns_servers), "focus-out-event",
+ G_CALLBACK(entry_lost_focus), NULL);
+ attach_label(w, 0, 1, 3, 4);
+ attach_entry(dns_servers, 1, 2, 3, 4);
+
+ w = gtk_label_new(_("DNS Search:"));
+ dns_search = gtk_entry_new();
+ attach_label(w, 0, 1, 4, 5);
+ attach_entry(dns_search, 1, 2, 4, 5);
+
+ hbox = gtk_hbox_new(false, 10);
+ gtk_box_pack_start(GTK_BOX(dialog_vbox), hbox, true, true, 3);
+ clear = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
+ gtk_widget_set_sensitive(clear, false);
+ gtk_box_pack_start(GTK_BOX(hbox), clear, false, false, 0);
+ g_signal_connect(G_OBJECT(clear), "clicked", on_clear, NULL);
+ rebind = gtk_button_new_with_mnemonic(_("_Rebind"));
+ gtk_widget_set_sensitive(rebind, false);
+ w = gtk_image_new_from_stock(GTK_STOCK_EXECUTE,
+ GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image(GTK_BUTTON(rebind), w);
+ gtk_box_pack_start(GTK_BOX(hbox), rebind, false, false, 0);
+ g_signal_connect(G_OBJECT(rebind), "clicked", on_rebind, NULL);
+ w = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ gtk_box_pack_end(GTK_BOX(hbox), w, false, false, 0);
+ g_signal_connect(G_OBJECT(w), "clicked",
+ dhcpcd_prefs_close, NULL);
+
+ blocks_on_change(blocks);
+ show_config(NULL);