diff options
author | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-03 12:19:24 (GMT) |
---|---|---|
committer | Oliver Schinagl <oliver@schinagl.nl> | 2008-01-03 12:19:24 (GMT) |
commit | 6b052d1bcbfe0bffbcd6b62f04bf294f693f5f7c (patch) | |
tree | 17b96d780bbc912cf097beea58e59f284975f00a | |
parent | 4498f6514ddfd5bf825d7706a50958029998f512 (diff) | |
download | 2iv35-6b052d1bcbfe0bffbcd6b62f04bf294f693f5f7c.zip 2iv35-6b052d1bcbfe0bffbcd6b62f04bf294f693f5f7c.tar.gz 2iv35-6b052d1bcbfe0bffbcd6b62f04bf294f693f5f7c.tar.bz2 |
variable zoomspeed
-rw-r--r-- | Smoke/gtk.c | 8 | ||||
-rw-r--r-- | Smoke/gtk_main.c | 28 | ||||
-rw-r--r-- | Smoke/renderer_gl.c | 28 | ||||
-rw-r--r-- | Smoke/renderer_gl.h | 9 | ||||
-rwxr-xr-x | Smoke/smoke.bin | bin | 620767 -> 621857 bytes |
5 files changed, 59 insertions, 14 deletions
diff --git a/Smoke/gtk.c b/Smoke/gtk.c index 753409e..2173e0f 100644 --- a/Smoke/gtk.c +++ b/Smoke/gtk.c @@ -314,9 +314,9 @@ scroll_event (GtkWidget *widget, //g_print ("%s: \"scroll_event\": ", gtk_widget_get_name (widget)); //if (event->state == GDK_ALT) { if (event->direction == GDK_SCROLL_UP) { - renderer_zoom_in(30); + renderer_zoom_in(); } else if (event->direction == GDK_SCROLL_DOWN) { - renderer_zoom_out(30); + renderer_zoom_out(); } return FALSE; @@ -728,7 +728,7 @@ create_window (GdkGLConfig *glconfig, fftw_real *field) * Draw the options notebook */ -#if 1 +#if 0 settings_notebook = create_main_page(); gtk_box_pack_start(GTK_BOX(hbox), settings_notebook, FALSE, FALSE, 0); gtk_widget_show(settings_notebook); @@ -789,7 +789,7 @@ create_window (GdkGLConfig *glconfig, fftw_real *field) notebook_page_label = gtk_label_new("Isolines"); gtk_widget_show(notebook_page_label); - notebook_page = create_isolines_page(); +// notebook_page = create_isolines_page(); gtk_widget_show(notebook_page); gtk_notebook_append_page(GTK_NOTEBOOK(settings_notebook), notebook_page, notebook_page_label); diff --git a/Smoke/gtk_main.c b/Smoke/gtk_main.c index 6e87ca0..ec3aa70 100644 --- a/Smoke/gtk_main.c +++ b/Smoke/gtk_main.c @@ -60,6 +60,11 @@ static gboolean reset_rotate(GtkWidget *button, gpointer data) { renderer_reset_roll(); } +static gboolean select_zoom_speed(GtkRange *adjustment, gpointer data) +{ + renderer_set_zoomspeed((int)gtk_range_get_value(adjustment)); +} + GtkWidget *create_main_page(void) { @@ -70,6 +75,8 @@ GtkWidget *create_main_page(void) GtkWidget *box, *box2; GtkWidget *button; GtkWidget *combo; + GtkAdjustment *zoom_adjustment; + GtkWidget *zoom_scale; GSList *dataset_group; page = gtk_vbox_new(FALSE, 0); @@ -193,5 +200,26 @@ 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"); + + box = gtk_vbox_new(FALSE, 0); + + zoom_adjustment = GTK_ADJUSTMENT(gtk_adjustment_new( + renderer_get_zoomspeed(), 1, 100, 5, 5, 0.1)); + zoom_scale = gtk_hscale_new(zoom_adjustment); + gtk_scale_set_digits(GTK_SCALE(zoom_scale), 0); + g_signal_connect(GTK_RANGE(zoom_scale), "value-changed", G_CALLBACK(select_zoom_speed), NULL); + + gtk_box_pack_start(GTK_BOX(box), zoom_scale, FALSE, TRUE, 0); + gtk_widget_show(zoom_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; } diff --git a/Smoke/renderer_gl.c b/Smoke/renderer_gl.c index 4b5bb84..ff8e908 100644 --- a/Smoke/renderer_gl.c +++ b/Smoke/renderer_gl.c @@ -27,11 +27,12 @@ #include "renderer_gl.h" -#define DEFAULT_X_POS 0.0f; -#define DEFAULT_Y_POS 0.0f; +#define DEFAULT_X_POS 0.0f +#define DEFAULT_Y_POS 0.0f #define DEFAULT_ZOOM -750.0f #define MIN_ZOOM -100.0f #define MAX_ZOOM -4000.0f +#define DEFAULT_ZOOM_SPEED 40 #define MIN_ZOOM -100.0f #define MAX_ZOOM -4000.0f @@ -45,6 +46,7 @@ float x_pos = DEFAULT_X_POS; float y_pos = DEFAULT_Y_POS; float z_pos = DEFAULT_ZOOM; +static int renderer_zoomspeed = DEFAULT_ZOOM_SPEED; static void render_legend(void) { @@ -595,17 +597,27 @@ void renderer_init_gl(void) } -void renderer_zoom_in(int zoom) +void renderer_set_zoomspeed(int zoomspeed) { - if ((z_pos +zoom) < MIN_ZOOM) { - z_pos += zoom; + renderer_zoomspeed = zoomspeed; +} + +int renderer_get_zoomspeed(void) +{ + return renderer_zoomspeed; +} + +void renderer_zoom_in(void) +{ + if ((z_pos +renderer_zoomspeed) < MIN_ZOOM) { + z_pos += renderer_zoomspeed; } } -void renderer_zoom_out(int zoom) +void renderer_zoom_out(void) { - if ((z_pos -zoom) > MAX_ZOOM) { - z_pos -= zoom; + if ((z_pos -renderer_zoomspeed) > MAX_ZOOM) { + z_pos -= renderer_zoomspeed; } } diff --git a/Smoke/renderer_gl.h b/Smoke/renderer_gl.h index 45d870a..0c0017e 100644 --- a/Smoke/renderer_gl.h +++ b/Smoke/renderer_gl.h @@ -5,10 +5,15 @@ void renderer_init_gl(void); void visualize(fftw_real *field); -void renderer_zoom_in(int zoom); -void renderer_zoom_out(int zoom); + +void renderer_set_zoomspeed(int zoomspeed); +int renderer_get_zoomspeed(void); + +void renderer_zoom_in(void); +void renderer_zoom_out(void); void renderer_reset_zoom(void); + extern float x_rot; extern float y_rot; extern float z_rot; diff --git a/Smoke/smoke.bin b/Smoke/smoke.bin Binary files differindex 7ac7c28..e42669d 100755 --- a/Smoke/smoke.bin +++ b/Smoke/smoke.bin |