diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-03 14:58:08 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-03 14:58:08 (GMT) |
commit | 747c680560744a021f1b99455db33f906970c3fe (patch) | |
tree | 6b7cf0ec59e1e399b060ca16e657249f8c5add32 /Smoke/gtk_main.c | |
parent | e1b9274194fcb0e5054948917628c5e1022b42c2 (diff) | |
download | 2iv35-747c680560744a021f1b99455db33f906970c3fe.zip 2iv35-747c680560744a021f1b99455db33f906970c3fe.tar.gz 2iv35-747c680560744a021f1b99455db33f906970c3fe.tar.bz2 |
dataset selection buttons now work
Diffstat (limited to 'Smoke/gtk_main.c')
-rw-r--r-- | Smoke/gtk_main.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/Smoke/gtk_main.c b/Smoke/gtk_main.c index 3c01fcc..6c9815f 100644 --- a/Smoke/gtk_main.c +++ b/Smoke/gtk_main.c @@ -6,6 +6,7 @@ #include "gtk_main.h" +#include "smoke.h" @@ -34,6 +35,13 @@ static gboolean select_calculate(GtkWidget *button, gpointer data) { fluids_set_calculate(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); } +static gboolean set_dataset(GtkButton *button, gpointer data) +{ + if (gtk_toggle_button_get_active(button)) { + smoke_set_dataset((int)data); + } +} + static gboolean reset_zoom(GtkWidget *button, gpointer data) { renderer_reset_zoom(); } @@ -135,20 +143,34 @@ GtkWidget *create_main_page(void) box = gtk_hbox_new(FALSE, 0); button = gtk_radio_button_new_with_label (NULL, "Rho"); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_dataset), (gpointer)DATASET_RHO); + if (smoke_get_dataset() == DATASET_RHO) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); + } + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_RHO); gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_widget_show(button); dataset_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button)); button = gtk_radio_button_new_with_label(dataset_group, "Velocity"); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_dataset), (gpointer)DATASET_VEL); + if (smoke_get_dataset() == DATASET_VEL) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); + } + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_VEL); gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_widget_show(button); button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button), "Force"); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(select_dataset), (gpointer)DATASET_FORCE); + if (smoke_get_dataset() == DATASET_FORCE) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), FALSE); + } + g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(set_dataset), (gpointer)DATASET_FORCE); gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_widget_show(button); |