]> Pileus Git - grits/blobdiff - src/plugins/test.c
Load marker from callback in GisPluginTest
[grits] / src / plugins / test.c
index 986a4f05f5f2730b090e6050e1394d33d5aedf71..92b588681e263803a515ab2ac843bb0502d3abb3 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+/**
+ * SECTION:test
+ * @short_description: Testing plugin
+ *
+ * #GisPluginTest is a testing plugin used during development and as an example
+ * for how to create a plugin.
+ */
+
 #include <gtk/gtkgl.h>
 #include <GL/gl.h>
 #include <GL/glu.h>
 /***********
  * Methods *
  ***********/
+gboolean _load_marker(gpointer _test)
+{
+       GisPluginTest *test = _test;
+       GisMarker *marker = gis_marker_new("St. Charles");
+       gis_point_set_lle(gis_object_center(marker), 38.841847, -90.491982, 0);
+       GIS_OBJECT(marker)->lod = EARTH_R;
+       test->marker = gis_viewer_add(test->viewer, GIS_OBJECT(marker), GIS_LEVEL_OVERLAY, 0);
+       return FALSE;
+}
+/**
+ * gis_plugin_test_new:
+ * @viewer: the #GisViewer to use for drawing
+ *
+ * Create a new instance of the testing plugin.
+ *
+ * Returns: the new #GisPluginTest
+ */
 GisPluginTest *gis_plugin_test_new(GisViewer *viewer)
 {
        g_debug("GisPluginTest: new");
        GisPluginTest *test = g_object_new(GIS_TYPE_PLUGIN_TEST, NULL);
        test->viewer = g_object_ref(viewer);
-
-       GisMarker *marker = gis_marker_new("St. Charles");
-       gis_point_set_lle(gis_object_center(GIS_OBJECT(marker)), 38.841847, -90.491982, 0);
-       GIS_OBJECT(marker)->lod = EARTH_R/4;
-       test->marker = gis_viewer_add(test->viewer, GIS_OBJECT(marker), GIS_LEVEL_OVERLAY, 0);
-
+       g_idle_add(_load_marker, test);
        return test;
 }