*/
void load_texture(AWeatherRidge *self, layer_t *layer, gchar *filename)
{
- aweather_gui_gl_begin(self->gui);
+ GisOpenGL *opengl = aweather_gui_get_opengl(self->gui);
+ gis_opengl_begin(opengl);
/* Load image */
- GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
- if (!pixbuf)
+ GError *error = NULL;
+ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(filename, &error);
+ if (!pixbuf || error) {
g_warning("Failed to load texture: %s", filename);
+ return;
+ }
guchar *pixels = gdk_pixbuf_get_pixels(pixbuf);
int width = gdk_pixbuf_get_width(pixbuf);
int height = gdk_pixbuf_get_height(pixbuf);
base);
g_free(base);
- aweather_gui_gl_end(self->gui);
+ gis_opengl_end(opengl);
g_object_unref(pixbuf);
/* Redraw */
- aweather_gui_gl_redraw(self->gui);
+ gis_opengl_redraw(opengl);
}
/*************
* callbacks *
*************/
-static void on_site_changed(AWeatherView *view, gchar *site, AWeatherRidge *self)
+static void on_site_changed(GisView *view, gchar *site, AWeatherRidge *self)
{
g_debug("AWeatherRidge: on_site_changed - site=%s", site);
for (int i = 0; i < LAYER_COUNT; i++) {
gchar *base = "http://radar.weather.gov/ridge/";
- gchar *path = g_strdup_printf(layers[i].fmt, site);
+ gchar *path = g_strdup_printf(layers[i].fmt, site+1);
cached_t *udata = g_malloc(sizeof(cached_t));
udata->self = self;
udata->layer = &layers[i];
- cache_file(base, path, AWEATHER_ONCE, cached_cb, udata);
+ cache_file(base, path, AWEATHER_ONCE, NULL, cached_cb, udata);
+ //cache_file(base, path, AWEATHER_UPDATE, cached_cb, udata);
g_free(path);
}
}
-void toggle_layer(GtkToggleButton *check, AWeatherGui *gui)
+void toggle_layer(GtkToggleButton *check, AWeatherRidge *self)
{
layer_t *layer = g_object_get_data(G_OBJECT(check), "layer");
layer->enabled = gtk_toggle_button_get_active(check);
- aweather_gui_gl_redraw(gui);
+ gis_opengl_redraw(aweather_gui_get_opengl(self->gui));
}
/***********
***********/
AWeatherRidge *aweather_ridge_new(AWeatherGui *gui)
{
- AWeatherRidge *ridge = g_object_new(AWEATHER_TYPE_RIDGE, NULL);
- ridge->gui = gui;
+ AWeatherRidge *self = g_object_new(AWEATHER_TYPE_RIDGE, NULL);
+ self->gui = gui;
- AWeatherView *view = aweather_gui_get_view(gui);
+ GisView *view = aweather_gui_get_view(gui);
GtkWidget *drawing = aweather_gui_get_widget(gui, "drawing");
GtkWidget *config = aweather_gui_get_widget(gui, "tabs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), layers[i].enabled);
gtk_box_pack_start(GTK_BOX(hbox), check, FALSE, TRUE, 0);
g_object_set_data(G_OBJECT(check), "layer", &layers[i]);
- g_signal_connect(check, "toggled", G_CALLBACK(toggle_layer), gui);
+ g_signal_connect(check, "toggled", G_CALLBACK(toggle_layer), self);
}
gtk_container_add(GTK_CONTAINER(body), hbox);
gtk_notebook_append_page(GTK_NOTEBOOK(config), body, tab);
- g_signal_connect(view, "site-changed", G_CALLBACK(on_site_changed), ridge);
+ g_signal_connect(view, "site-changed", G_CALLBACK(on_site_changed), self);
- return ridge;
+ return self;
}
static void aweather_ridge_expose(AWeatherPlugin *_ridge)