diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2007-12-19 15:44:23 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2007-12-19 15:44:23 (GMT) |
commit | a60088999da4f44bf5885f431fe78eb87d643ae7 (patch) | |
tree | 27940a3cd14a7cdee60ddb0263bf1173c51df56c /Smoke/gtk_glyphs.c | |
parent | c287b3f591fe3e10dceedfd90a5ce71b2c703988 (diff) | |
download | 2iv35-a60088999da4f44bf5885f431fe78eb87d643ae7.zip 2iv35-a60088999da4f44bf5885f431fe78eb87d643ae7.tar.gz 2iv35-a60088999da4f44bf5885f431fe78eb87d643ae7.tar.bz2 |
splitted up glyphs
Diffstat (limited to 'Smoke/gtk_glyphs.c')
-rw-r--r-- | Smoke/gtk_glyphs.c | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/Smoke/gtk_glyphs.c b/Smoke/gtk_glyphs.c new file mode 100644 index 0000000..9ea1f14 --- /dev/null +++ b/Smoke/gtk_glyphs.c @@ -0,0 +1,143 @@ +#include <gtk/gtk.h> + +#include <rfftw.h> +#include "fluids.h" + + +#include "palette.h" +#include "glyphs.h" + +#include "gtk_glyphs.h" + + +static gboolean select_colormap(GtkComboBox *combo, gpointer data) +{ + glyphs_set_map(gtk_combo_box_get_active(combo)); +} + + +static gboolean select_num_colors(GtkRange *adjustment, gpointer data) +{ + glyphs_set_num_colors((int)gtk_range_get_value(adjustment)); +} + + +GtkWidget *create_glyphs_page(void) +{ + /* in reality a page is really just a vbox filled with other widgets + */ + GtkWidget *page; + GtkWidget *frame; + GtkWidget *box; + GtkWidget *label; + GtkWidget *button; + GtkWidget *combo; + GtkAdjustment *color_adjustment; + GtkWidget *color_scale; + GSList *dataset_group; + + page = gtk_vbox_new(FALSE, 0); + + frame = gtk_frame_new("Scalarset"); + + 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(set_glyph_scalar), (gpointer)SCALAR_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(set_glyph_scalar), (gpointer)SCALAR_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(set_glyph_scalar), (gpointer)SCALAR_FORCE); + 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("Vectorset"); + + box = gtk_hbox_new(FALSE, 0); + + button = gtk_radio_button_new_with_label(NULL, "Velocity"); + g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_vector), (gpointer)VECTOR_VEL); + 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_from_widget(GTK_RADIO_BUTTON(button), "Force"); + g_signal_connect (G_OBJECT(button), "clicked", G_CALLBACK(set_glyph_vector), (gpointer)VECTOR_FORCE); + 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("Colors"); + + box = gtk_vbox_new(FALSE, 0); + + + label = gtk_label_new("Colormap"); + + gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0); + gtk_widget_show(label); + + + combo = gtk_combo_box_new_text(); + + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Black & White"); + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Rainbow"); + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Bands"); + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Wilrik"); + gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Oliver"); + + gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0); + g_signal_connect(combo, "changed", G_CALLBACK(select_colormap), (gpointer)NULL); + + gtk_box_pack_start(GTK_BOX(box), combo, FALSE, TRUE, 0); + gtk_widget_show(combo); + + + label = gtk_label_new("Number of Colors"); + + gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0); + gtk_widget_show(label); + + + color_adjustment = GTK_ADJUSTMENT(gtk_adjustment_new( + PALETTE_MAXCOLORS, 1, PALETTE_MAXCOLORS +1, 0.5, 5, 1)); + color_scale = gtk_hscale_new(color_adjustment); + gtk_scale_set_digits(GTK_SCALE(color_scale), 0); + g_signal_connect(GTK_RANGE(color_scale), "value-changed", G_CALLBACK(select_num_colors), NULL); + + gtk_box_pack_start(GTK_BOX(box), color_scale, FALSE, TRUE, 0); + gtk_widget_show(color_scale); + + + 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); + + + return page; +} |