]> Pileus Git - aweather/blobdiff - src/plugins/level2.c
Add units to isosurface slider
[aweather] / src / plugins / level2.c
index 654465d935b14a1e7af8589f7a9a6f51e38e7e90..2f595c9bd26f3ffbd7ebdd6b7189f8b9a3f409ef 100644 (file)
 
 #include <config.h>
 #include <math.h>
-#include <GL/gl.h>
 #include <glib/gstdio.h>
 #include <grits.h>
 #include <rsl.h>
 
 #include "level2.h"
 
+#include "../compat.h"
+
 #define ISO_MIN 30
 #define ISO_MAX 80
 
@@ -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+1, FALSE);
+                               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;
@@ -420,7 +426,7 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2)
 
        /* Add date */
        gchar *date_str = g_strdup_printf("<b><i>%04d-%02d-%02d %02d:%02d</i></b>",
-                       radar->h.year, radar->h.month, radar->h.day+1,
+                       radar->h.year, radar->h.month, radar->h.day,
                        radar->h.hour, radar->h.minute);
        GtkWidget *date_label = gtk_label_new(date_str);
        gtk_label_set_use_markup(GTK_LABEL(date_label), TRUE);
@@ -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 */