+void vik_viewport_set_center_utm ( VikViewport *vvp, const struct UTM *utm );
+void vik_viewport_set_center_latlon ( VikViewport *vvp, const struct LatLon *ll );
+void vik_viewport_corners_for_zonen ( VikViewport *vvp, int zone, VikCoord *ul, VikCoord *br );
+void vik_viewport_get_min_max_lat_lon ( VikViewport *vp, gdouble *min_lat, gdouble *max_lat, gdouble *min_lon, gdouble *max_lon );
+
+
+/* drawmode management */
+typedef enum {
+ VIK_VIEWPORT_DRAWMODE_UTM=0,
+ VIK_VIEWPORT_DRAWMODE_EXPEDIA,
+ VIK_VIEWPORT_DRAWMODE_MERCATOR,
+ VIK_VIEWPORT_DRAWMODE_LATLON,
+ VIK_VIEWPORT_NUM_DRAWMODES /*< skip >*/
+} VikViewportDrawMode;
+
+VikCoordMode vik_viewport_get_coord_mode ( const VikViewport *vvp );
+gboolean vik_viewport_is_one_zone ( VikViewport *vvp );
+const gchar *vik_viewport_get_drawmode_name(VikViewport *vv, VikViewportDrawMode mode);
+void vik_viewport_set_drawmode ( VikViewport *vvp, VikViewportDrawMode drawmode );
+VikViewportDrawMode vik_viewport_get_drawmode ( VikViewport *vvp );
+ /* Do not forget to update vik_viewport_get_drawmode_name() if you modify VikViewportDrawMode */
+
+
+/* Triggers */
+void vik_viewport_set_trigger ( VikViewport *vp, gpointer trigger );
+gpointer vik_viewport_get_trigger ( VikViewport *vp );
+void vik_viewport_snapshot_save ( VikViewport *vp );
+void vik_viewport_snapshot_load ( VikViewport *vp );
+void vik_viewport_set_half_drawn(VikViewport *vp, gboolean half_drawn);
+gboolean vik_viewport_get_half_drawn( VikViewport *vp );