X-Git-Url: http://pileus.org/git/?p=aweather;a=blobdiff_plain;f=src%2Fplugins%2Flevel2.c;h=2f595c9bd26f3ffbd7ebdd6b7189f8b9a3f409ef;hp=e8e63a5566db3f53d1fa6322389af544026ef428;hb=276728b7cc42bad3ec38acfe375c3a30ae87e587;hpb=c62bc957c9f56911a4220e0ee0e3ca9781b5b0da diff --git a/src/plugins/level2.c b/src/plugins/level2.c index e8e63a5..2f595c9 100644 --- a/src/plugins/level2.c +++ b/src/plugins/level2.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2010 Andy Spencer + * Copyright (C) 2009-2011 Andy Spencer * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,13 +17,14 @@ #include #include -#include #include #include #include #include "level2.h" +#include "../compat.h" + #define ISO_MIN 30 #define ISO_MAX 80 @@ -211,7 +212,7 @@ void aweather_level2_draw(GritsObject *_level2, GritsOpenGL *opengl) /* Draw wsr88d */ Sweep *sweep = level2->sweep; - glDisable(GL_ALPHA_TEST); + //glDisable(GL_ALPHA_TEST); glDisable(GL_CULL_FACE); glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); @@ -324,7 +325,7 @@ void aweather_level2_set_iso(AWeatherLevel2 *level2, gfloat level) vol->disp = GRITS_VOLUME_SURFACE; GRITS_OBJECT(vol)->center = GRITS_OBJECT(level2)->center; grits_viewer_add(GRITS_OBJECT(level2)->viewer, - GRITS_OBJECT(vol), GRITS_LEVEL_WORLD, TRUE); + GRITS_OBJECT(vol), GRITS_LEVEL_WORLD+5, TRUE); level2->volume = vol; } if (ISO_MIN < level && level < ISO_MAX) { @@ -379,9 +380,9 @@ AWeatherLevel2 *aweather_level2_new_from_file(const gchar *file, const gchar *si /* Load the radar file */ RSL_read_these_sweeps("all", NULL); - g_message("read start"); + g_debug("AWeatherLevel2: rsl read start"); Radar *radar = RSL_wsr88d_to_radar(raw, (gchar*)site); - g_message("read done"); + g_debug("AWeatherLevel2: rsl read done"); g_free(raw); if (!radar) return NULL; @@ -393,8 +394,8 @@ static void _on_sweep_clicked(GtkRadioButton *button, gpointer _level2) { AWeatherLevel2 *level2 = _level2; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { - gint type = (gint)g_object_get_data(G_OBJECT(button), "type"); - gint elev = (gint)g_object_get_data(G_OBJECT(button), "elev"); + gint type = (glong)g_object_get_data(G_OBJECT(button), "type"); + gint elev = (glong)g_object_get_data(G_OBJECT(button), "elev"); aweather_level2_set_sweep(level2, type, (float)elev/100); //level2->colormap = level2->sweep_colors; } @@ -407,6 +408,11 @@ static void _on_iso_changed(GtkRange *range, gpointer _level2) aweather_level2_set_iso(level2, level); } +static gchar *_on_format_value(GtkScale *scale, gdouble value, gpointer _level2) +{ + return g_strdup_printf("%.1lf dBZ ", value); +} + GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2) { Radar *radar = level2->radar; @@ -460,7 +466,8 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2) cols-1,cols, 0,1, GTK_FILL,GTK_FILL, 0,0); } - elev_box = gtk_hbox_new(TRUE, 0); + elev_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_set_homogeneous(GTK_BOX(elev_box), TRUE); gtk_table_attach(GTK_TABLE(table), elev_box, cols-1,cols, rows-1,rows, GTK_FILL,GTK_FILL, 0,0); } @@ -476,9 +483,9 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2) g_object_set(button, "draw-indicator", FALSE, NULL); gtk_box_pack_end(GTK_BOX(elev_box), button, TRUE, TRUE, 0); - g_object_set_data(G_OBJECT(button), "level2", (gpointer)level2); - g_object_set_data(G_OBJECT(button), "type", (gpointer)vi); - g_object_set_data(G_OBJECT(button), "elev", (gpointer)(int)(elev*100)); + g_object_set_data(G_OBJECT(button), "level2", level2); + g_object_set_data(G_OBJECT(button), "type", (gpointer)(guintptr)vi); + g_object_set_data(G_OBJECT(button), "elev", (gpointer)(guintptr)(elev*100)); g_signal_connect(button, "clicked", G_CALLBACK(_on_sweep_clicked), level2); } } @@ -490,12 +497,13 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2) gtk_misc_set_alignment(GTK_MISC(row_label), 1, 0.5); gtk_table_attach(GTK_TABLE(table), row_label, 0,1, rows,rows+1, GTK_FILL,GTK_FILL, 5,0); - GtkWidget *scale = gtk_hscale_new_with_range(ISO_MIN, ISO_MAX, 0.5); + GtkWidget *scale = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, ISO_MIN, ISO_MAX, 0.5); gtk_widget_set_size_request(scale, -1, 26); gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_LEFT); gtk_range_set_inverted(GTK_RANGE(scale), TRUE); gtk_range_set_value(GTK_RANGE(scale), ISO_MAX); - g_signal_connect(scale, "value-changed", G_CALLBACK(_on_iso_changed), level2); + g_signal_connect(scale, "value-changed", G_CALLBACK(_on_iso_changed), level2); + g_signal_connect(scale, "format-value", G_CALLBACK(_on_format_value), level2); gtk_table_attach(GTK_TABLE(table), scale, 1,cols+1, rows,rows+1, GTK_FILL|GTK_EXPAND,GTK_FILL, 0,0); /* Shove all the buttons to the left, but keep the slider expanded */ @@ -516,7 +524,8 @@ static void aweather_level2_dispose(GObject *_level2) AWeatherLevel2 *level2 = AWEATHER_LEVEL2(_level2); g_debug("AWeatherLevel2: dispose - %p", _level2); if (level2->volume) { - grits_viewer_remove(GRITS_OBJECT(level2)->viewer, level2->volume); + grits_viewer_remove(GRITS_OBJECT(level2->volume)->viewer, + GRITS_OBJECT(level2->volume)); level2->volume = NULL; } G_OBJECT_CLASS(aweather_level2_parent_class)->dispose(_level2);