diff options
Diffstat (limited to 'Smoke/gtk_main.c')
-rw-r--r-- | Smoke/gtk_main.c | 164 |
1 files changed, 59 insertions, 105 deletions
diff --git a/Smoke/gtk_main.c b/Smoke/gtk_main.c index 5f9e876..ebc1fe1 100644 --- a/Smoke/gtk_main.c +++ b/Smoke/gtk_main.c @@ -33,6 +33,13 @@ static gboolean select_render_smoke(GtkWidget *button, gpointer data) { } +static gboolean select_render_grid_smoke(GtkWidget *button, gpointer data) { + smoke_grid_set_render(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); + + return TRUE; +} + + static gboolean select_render_glyphs(GtkWidget *button, gpointer data) { glyphs_set_render(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); @@ -63,15 +70,6 @@ static gboolean select_calculate(GtkWidget *button, gpointer data) { return TRUE; } -static gboolean set_dataset(GtkToggleButton *button, gpointer data) -{ - if (gtk_toggle_button_get_active(button)) { - smoke_set_dataset((int)data); - } - - return TRUE; -} - static gboolean select_normals(GtkWidget *button, gpointer data) { normals_set_render(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); @@ -139,6 +137,13 @@ static gboolean select_zoom_speed(GtkRange *adjustment, gpointer data) return TRUE; } +static gboolean select_cell_size(GtkRange *adjustment, gpointer data) +{ + renderer_set_grid_cell_size((int)gtk_range_get_value(adjustment)); + + return TRUE; +} + static gboolean reset_simulation(GtkWidget *button, gpointer data) { fluids_reset_simulation(); @@ -156,68 +161,73 @@ GtkWidget *create_main_page(void) GtkWidget *button; GtkAdjustment *adjustment; GtkWidget *scale; - GSList *dataset_group; page = gtk_vbox_new(FALSE, 0); frame = gtk_frame_new("Simulation"); box = gtk_vbox_new(FALSE, 0); - button = gtk_check_button_new_with_label("Draw Grid"); + 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"); + 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"); + button = gtk_check_button_new_with_label("Draw grid-smoke"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), smoke_grid_get_render()); + g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(select_render_grid_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 Isolines"); + 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"); + 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("Draw Flowvis"); + 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("Toggle Calculation"); + 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 Normals Vectors"); + button = gtk_check_button_new_with_label("Draw normal 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("Draw Normals2 Vectors"); + button = gtk_check_button_new_with_label("Draw normal vectors 2"); 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"); + 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); @@ -228,104 +238,28 @@ GtkWidget *create_main_page(void) gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0); gtk_widget_show(frame); - frame = gtk_frame_new("Dataset"); - - box = gtk_vbox_new(FALSE, 0); - - box2 = gtk_hbox_new(FALSE, 0); - - button = gtk_radio_button_new_with_label (NULL, "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(box2), 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"); - 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(box2), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button), "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(box2), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0); - gtk_widget_show(box2); - - box2 = gtk_hbox_new(FALSE, 0); - - dataset_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button)); - - button = gtk_radio_button_new_with_label(dataset_group, "Divergence Velocity"); - if (smoke_get_dataset() == DATASET_DIVV) { - 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_DIVV); - gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - button = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(button), "Divergence Force"); - if (smoke_get_dataset() == DATASET_DIVF) { - 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_DIVF); - gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); - gtk_widget_show(button); - - - gtk_box_pack_start(GTK_BOX(box), box2, TRUE, TRUE, 0); - gtk_widget_show(box2); - - 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("View"); box = gtk_hbox_new(FALSE, 0); - button = gtk_button_new_with_label("Reset All"); + button = gtk_button_new_with_label("Reset all"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_all), NULL); gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_widget_show(button); box2 = gtk_vbox_new(FALSE, 0); - button = gtk_button_new_with_label("Reset Zoom"); + button = gtk_button_new_with_label("Reset zoom"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_zoom), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); - button = gtk_button_new_with_label("Reset Position"); + button = gtk_button_new_with_label("Reset position"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_pos), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); - button = gtk_button_new_with_label("Reset Rotate"); + button = gtk_button_new_with_label("Reset rotate"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_rotate), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -335,17 +269,17 @@ GtkWidget *create_main_page(void) box2 = gtk_vbox_new(FALSE, 0); - button = gtk_button_new_with_label("Reset Yaw"); + button = gtk_button_new_with_label("Reset yaw"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_yaw), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); - button = gtk_button_new_with_label("Reset Pitch"); + button = gtk_button_new_with_label("Reset pitch"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_pitch), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); - button = gtk_button_new_with_label("Reset Roll"); + button = gtk_button_new_with_label("Reset roll"); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(reset_roll), NULL); gtk_box_pack_start(GTK_BOX(box2), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -359,12 +293,12 @@ GtkWidget *create_main_page(void) gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0); gtk_widget_show(frame); - frame = gtk_frame_new("Zoom Speed"); + frame = gtk_frame_new("Zoom speed"); box = gtk_vbox_new(FALSE, 0); adjustment = GTK_ADJUSTMENT(gtk_adjustment_new( - renderer_get_zoomspeed(), 1, 100, 5, 5, 0.1)); + renderer_get_zoomspeed(), 1, 256, 5, 5, 0.1)); scale = gtk_hscale_new(adjustment); gtk_scale_set_digits(GTK_SCALE(scale), 0); g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_zoom_speed), NULL); @@ -379,5 +313,25 @@ GtkWidget *create_main_page(void) gtk_widget_show(frame); + frame = gtk_frame_new("Grid cell size"); + + box = gtk_vbox_new(FALSE, 0); + + adjustment = GTK_ADJUSTMENT(gtk_adjustment_new( + renderer_get_grid_cell_size(), 16, 128, 1, 8, 0.0)); + scale = gtk_hscale_new(adjustment); + gtk_scale_set_digits(GTK_SCALE(scale), 0); + g_signal_connect(GTK_RANGE(scale), "value-changed", G_CALLBACK(select_cell_size), NULL); + + gtk_box_pack_start(GTK_BOX(box), scale, FALSE, TRUE, 0); + gtk_widget_show(scale); + + gtk_widget_show(box); + gtk_container_add(GTK_CONTAINER(frame), box); + + gtk_box_pack_start (GTK_BOX(page), frame, FALSE, TRUE, 0); + gtk_widget_show(frame); + + return page; } |