+void toggle_layer(GtkToggleButton *check, AWeatherGui *gui)
+{
+ layer_t *layer = g_object_get_data(G_OBJECT(check), "layer");
+ layer->enabled = gtk_toggle_button_get_active(check);
+ aweather_gui_gl_redraw(gui);
+}
+
+/***********
+ * Methods *
+ ***********/
+AWeatherRidge *aweather_ridge_new(AWeatherGui *gui)
+{
+ AWeatherRidge *ridge = g_object_new(AWEATHER_TYPE_RIDGE, NULL);
+ ridge->gui = gui;
+
+ AWeatherView *view = aweather_gui_get_view(gui);
+ GtkWidget *drawing = aweather_gui_get_widget(gui, "drawing");
+ GtkWidget *config = aweather_gui_get_widget(gui, "tabs");
+
+ /* Add configuration tab */
+ GtkWidget *tab = gtk_label_new("Ridge");
+ GtkWidget *body = gtk_alignment_new(0.5, 0, 0, 0);
+ GtkWidget *hbox = gtk_hbox_new(FALSE, 10);
+ for (int i = 0; i < LAYER_COUNT; i++) {
+ GtkWidget *check = gtk_check_button_new_with_label(layers[i].name);
+ 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);
+ }
+ 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);
+
+ return ridge;
+}
+
+static void aweather_ridge_expose(AWeatherPlugin *_ridge)