+static void update_time_widget(GisViewer *viewer, time_t time, AWeatherGui *self)
+{
+ g_debug("AWeatherGui: update_time_widget - time=%u", (guint)time);
+ // FIXME
+ //GtkTreeView *tview = GTK_TREE_VIEW(aweather_gui_get_widget(self, "main_time"));
+ //GtkTreeModel *model = GTK_TREE_MODEL(gtk_tree_view_get_model(tview));
+ //GtkTreeIter iter;
+ //if (gtk_tree_model_find_string(model, &iter, NULL, 0, time)) {
+ // GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
+ // gtk_tree_view_set_cursor(tview, path, NULL, FALSE);
+ // gtk_tree_path_free(path);
+ //}
+}
+
+/* Prefs callbacks */
+G_MODULE_EXPORT void on_offline(GtkToggleAction *action, AWeatherGui *self)
+{
+ gboolean value = gtk_toggle_action_get_active(action);
+ g_debug("AWeatherGui: on_offline - offline=%d", value);
+ gis_viewer_set_offline(self->viewer, value);
+}
+
+G_MODULE_EXPORT void on_initial_site_changed(GtkComboBox *combo, AWeatherGui *self)
+{
+ gchar *code;
+ GtkTreeIter iter;
+ GtkTreeModel *model = gtk_combo_box_get_model(combo);
+ gtk_combo_box_get_active_iter(combo, &iter);
+ gtk_tree_model_get(model, &iter, 0, &code, -1);
+ g_debug("AWeatherGui: on_initial_site_changed - code=%s", code);
+ gis_prefs_set_string(self->prefs, "aweather/initial_site", code);
+ g_free(code);
+}
+
+G_MODULE_EXPORT void on_nexrad_url_changed(GtkEntry *entry, AWeatherGui *self)
+{
+ const gchar *text = gtk_entry_get_text(entry);
+ g_debug("AWeatherGui: on_nexrad_url_changed - url=%s", text);
+ gis_prefs_set_string(self->prefs, "aweather/nexrad_url", text);
+}
+
+G_MODULE_EXPORT int on_log_level_changed(GtkSpinButton *spinner, AWeatherGui *self)
+{
+ gint value = gtk_spin_button_get_value_as_int(spinner);
+ g_debug("AWeatherGui: on_log_level_changed - %p, level=%d", self, value);
+ gis_prefs_set_integer(self->prefs, "aweather/log_level", value);
+ return TRUE;
+}
+
+