+
+
+/****************
+ * GObject code *
+ ****************/
+/* Plugin init */
+static void gis_plugin_radar_plugin_init(GisPluginInterface *iface);
+G_DEFINE_TYPE_WITH_CODE(GisPluginRadar, gis_plugin_radar, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE(GIS_TYPE_PLUGIN,
+ gis_plugin_radar_plugin_init));
+static void gis_plugin_radar_plugin_init(GisPluginInterface *iface)
+{
+ g_debug("GisPluginRadar: plugin_init");
+ /* Add methods to the interface */
+ iface->expose = gis_plugin_radar_expose;
+ iface->get_config = gis_plugin_radar_get_config;
+}
+/* Class/Object init */
+static void gis_plugin_radar_init(GisPluginRadar *self)
+{
+ g_debug("GisPluginRadar: class_init");
+ /* Set defaults */
+ self->soup = NULL;
+ self->cur_triangles = NULL;
+ self->cur_num_triangles = 0;
+
+ self->config_body = gtk_alignment_new(0, 0, 1, 1);
+ gtk_container_set_border_width(GTK_CONTAINER(self->config_body), 5);
+ gtk_container_add(GTK_CONTAINER(self->config_body), gtk_label_new("No radar loaded"));
+}
+static void gis_plugin_radar_dispose(GObject *gobject)
+{
+ g_debug("GisPluginRadar: dispose");
+ GisPluginRadar *self = GIS_PLUGIN_RADAR(gobject);
+ g_signal_handler_disconnect(self->view, self->time_changed_id);
+ /* Drop references */
+ G_OBJECT_CLASS(gis_plugin_radar_parent_class)->dispose(gobject);
+}
+static void gis_plugin_radar_finalize(GObject *gobject)
+{
+ g_debug("GisPluginRadar: finalize");
+ GisPluginRadar *self = GIS_PLUGIN_RADAR(gobject);
+ /* Free data */
+ G_OBJECT_CLASS(gis_plugin_radar_parent_class)->finalize(gobject);
+
+}
+static void gis_plugin_radar_class_init(GisPluginRadarClass *klass)
+{
+ g_debug("GisPluginRadar: class_init");
+ GObjectClass *gobject_class = (GObjectClass*)klass;
+ gobject_class->dispose = gis_plugin_radar_dispose;
+ gobject_class->finalize = gis_plugin_radar_finalize;
+}
+