summaryrefslogtreecommitdiffstats
path: root/Smoke/gtk_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'Smoke/gtk_main.c')
-rw-r--r--Smoke/gtk_main.c117
1 files changed, 66 insertions, 51 deletions
diff --git a/Smoke/gtk_main.c b/Smoke/gtk_main.c
index 679ba12..f2ba7d0 100644
--- a/Smoke/gtk_main.c
+++ b/Smoke/gtk_main.c
@@ -139,6 +139,12 @@ static gboolean select_zoom_speed(GtkRange *adjustment, gpointer data)
return TRUE;
}
+static gboolean reset_simulation(GtkWidget *button, gpointer data) {
+ fluids_reset_simulation();
+
+ return TRUE;
+}
+
GtkWidget *create_main_page(void)
{
@@ -154,64 +160,73 @@ GtkWidget *create_main_page(void)
page = gtk_vbox_new(FALSE, 0);
- box = gtk_vbox_new(FALSE, 0);
- button = gtk_check_button_new_with_label("Draw Grid");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), renderer_get_render_grid());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_grid), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_check_button_new_with_label("Draw Smoke");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), smoke_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_smoke), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_check_button_new_with_label("Draw Glyphs");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), glyphs_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_glyphs), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ frame = gtk_frame_new("Simulation");
- button = gtk_check_button_new_with_label("Draw Isolines");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), isolines_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_isolines), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
-
- button = gtk_check_button_new_with_label("Draw Streamlines");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), streamlines_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_streamlines), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ box = gtk_vbox_new(FALSE, 0);
+ button = gtk_check_button_new_with_label("Draw Grid");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), renderer_get_render_grid());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_grid), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_check_button_new_with_label("Draw Smoke");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), smoke_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_smoke), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_check_button_new_with_label("Draw Glyphs");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), glyphs_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_glyphs), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
- button = gtk_check_button_new_with_label("Draw Flowvis");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), flowvis_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_flowvis), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ button = gtk_check_button_new_with_label("Draw Isolines");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), isolines_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_isolines), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_check_button_new_with_label("Draw Streamlines");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), streamlines_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_streamlines), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
- button = gtk_check_button_new_with_label("Toggle Calculation");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), fluids_get_calculate());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_calculate), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ button = gtk_check_button_new_with_label("Draw Flowvis");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), flowvis_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_flowvis), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
- button = gtk_check_button_new_with_label("Draw Normals Vectors");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), normals_get_render());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_normals), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ button = gtk_check_button_new_with_label("Toggle Calculation");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), fluids_get_calculate());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_calculate), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
- button = gtk_check_button_new_with_label("Draw Normals2 Vectors");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), normals_get_render2());
- g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_normals2), NULL);
- gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
- gtk_widget_show(button);
+ button = gtk_check_button_new_with_label("Draw Normals Vectors");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), normals_get_render());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_normals), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
- gtk_box_pack_start (GTK_BOX(page), box, FALSE, TRUE, 0);
- gtk_widget_show(box);
+ button = gtk_check_button_new_with_label("Draw Normals2 Vectors");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), normals_get_render2());
+ g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_normals2), NULL);
+ gtk_box_pack_start (GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ button = gtk_button_new_with_label("Reset Simulation");
+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_simulation), NULL);
+ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0);
+ gtk_widget_show(button);
+
+ gtk_container_add(GTK_CONTAINER(frame), box);
+ gtk_widget_show(box);
+ gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0);
+ gtk_widget_show(frame);
frame = gtk_frame_new("Dataset");