- gtk_main_quit();
-}
-
-static void create_radio(GtkWidget *dialog, const char *name, ...)
-{
- va_list args;
- GtkRadioButton *group = NULL;
- GtkWidget *box, *label;
-
- box = gtk_hbox_new(TRUE, 10);
- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), box);
- gtk_widget_show(box);
-
- label = gtk_label_new(name);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 0);
- gtk_widget_show(label);
-
- va_start(args, name);
- for (;;) {
- int enabled;
- const char *name;
- GtkWidget *button;
- void *callback_fn;
-
- name = va_arg(args, char *);
- if (!name)
- break;
- callback_fn = va_arg(args, void *);
- enabled = va_arg(args, int);
-
- button = gtk_radio_button_new_with_label_from_widget(group, name);
- group = GTK_RADIO_BUTTON(button);
- gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), enabled);
- g_signal_connect(button, "toggled", G_CALLBACK(callback_fn), NULL);
- gtk_widget_show(button);
- }
- va_end(args);
-}
-
-#define UNITCALLBACK(name, type, value) \
-static void name(GtkWidget *w, gpointer data) \
-{ \
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) \
- menu_units.type = value; \
-}
-
-static struct units menu_units;
-
-UNITCALLBACK(set_meter, length, METERS)
-UNITCALLBACK(set_feet, length, FEET)
-UNITCALLBACK(set_bar, pressure, BAR)
-UNITCALLBACK(set_psi, pressure, PSI)
-UNITCALLBACK(set_liter, volume, LITER)
-UNITCALLBACK(set_cuft, volume, CUFT)
-UNITCALLBACK(set_celsius, temperature, CELSIUS)
-UNITCALLBACK(set_fahrenheit, temperature, FAHRENHEIT)