+/* 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 );
+
+
+/***************************************************************************************************
+ * Drawing-related operations
+ ***************************************************************************************************/
+
+/* Viewport buffer management/drawing to screen */
+GdkPixmap *vik_viewport_get_pixmap ( VikViewport *vvp ); /* get pointer to drawing buffer */
+void vik_viewport_sync ( VikViewport *vvp ); /* draw buffer to window */
+void vik_viewport_pan_sync ( VikViewport *vvp, gint x_off, gint y_off );
+void vik_viewport_clear ( VikViewport *vvp );