+
+ return NULL;
+}
+
+
+/***********
+ * Methods *
+ ***********/
+GisPluginRadar *gis_plugin_radar_new(GisViewer *viewer, GisPrefs *prefs)
+{
+ /* TODO: move to constructor if possible */
+ g_debug("GisPluginRadar: new");
+ GisPluginRadar *self = g_object_new(GIS_TYPE_PLUGIN_RADAR, NULL);
+ self->viewer = viewer;
+ self->prefs = prefs;
+ self->time_changed_id = g_signal_connect(viewer, "time-changed",
+ G_CALLBACK(_on_time_changed), self);
+ self->location_changed_id = g_signal_connect(viewer, "location-changed",
+ G_CALLBACK(_on_location_changed), self);
+
+ for (city_t *city = cities; city->type; city++) {
+ if (city->type != LOCATION_CITY)
+ continue;
+ g_debug("Adding marker for %s %s", city->code, city->label);
+ GisMarker *marker = gis_marker_new(city->label);
+ gis_point_set_lle(gis_object_center(GIS_OBJECT(marker)),
+ city->lat, city->lon, city->elev);
+ GIS_OBJECT(marker)->lod = EARTH_R/2;
+ gis_viewer_add(self->viewer, GIS_OBJECT(marker), GIS_LEVEL_OVERLAY, FALSE);
+ }
+
+ /* Add renderers */
+ GisCallback *callback;
+
+ callback = gis_callback_new(_draw_radar, self);
+ gis_viewer_add(viewer, GIS_OBJECT(callback), GIS_LEVEL_WORLD, TRUE);
+
+ callback = gis_callback_new(_draw_hud, self);
+ gis_viewer_add(viewer, GIS_OBJECT(callback), GIS_LEVEL_HUD, FALSE);
+
+ return self;
+}
+
+static GtkWidget *gis_plugin_radar_get_config(GisPlugin *_self)
+{
+ GisPluginRadar *self = GIS_PLUGIN_RADAR(_self);
+ return self->config_body;