]> err.no Git - mapper/commitdiff
MapWidget: add gtk_map_goto_position() function to set center from a Position
authorKaj-Michael Lang <milang@tal.org>
Wed, 16 Jul 2008 13:38:50 +0000 (16:38 +0300)
committerKaj-Michael Lang <milang@tal.org>
Wed, 16 Jul 2008 13:38:50 +0000 (16:38 +0300)
libs/libgtkmap/gtkmap.c
libs/libgtkmap/gtkmap.h

index 98ab2f27af8acd55b10697e1e78c893855f6ad58..8fcaf7b2d3273d8a0f065c825a65bb13c0f43a48 100644 (file)
@@ -2045,6 +2045,26 @@ priv=GTK_MAP_GET_PRIVATE(map);
 unit2latlon(priv->center.unitx, priv->center.unity, lat, lon);
 }
 
+/**
+ * gtk_map_goto_position:
+ * @pos: A Position to center on
+ *
+ * Centers map view on given Position if it's valid.
+ *
+ * Returns TRUE if Position was valid and view was centered. FALSE otherwise.
+ */
+gboolean
+gtk_map_goto_position(GtkWidget *widget, Position *pos)
+{
+g_return_if_fail(GTK_IS_MAP(widget));
+g_return_if_fail(pos);
+
+if (pos->valid==FALSE)
+       return FALSE;
+gtk_map_set_center_latlon(widget, pos->lat, pos->lon);
+return TRUE;
+}
+
 /**
  * gtk_map_pan:
  * @delta_x:
index 3c851995ff4102d96981ff7994b76d294777939a..0b85ab141599e767965bc9d5b7bc6e711004180b 100644 (file)
@@ -145,6 +145,8 @@ void gtk_map_get_center(GtkWidget *map, guint *unitx, guint *unity);
 void gtk_map_set_center_latlon(GtkWidget *map, gdouble lat, gdouble lon);
 void gtk_map_get_center_latlon(GtkWidget *map, gdouble *lat, gdouble *lon);
 
+gboolean gtk_map_goto_position(GtkWidget *widget, Position *pos);
+
 gboolean gtk_map_set_center_mode(GtkWidget *widget, GtkMapCenterMode mode);
 GtkMapCenterMode gtk_map_get_center_mode(GtkWidget *widget);