+void vik_window_enable_layer_tool ( VikWindow *vw, gint layer_id, gint tool_id );
+
+gpointer vik_window_get_selected_trw_layer ( VikWindow *vw ); /* return type VikTrwLayer */
+void vik_window_set_selected_trw_layer ( VikWindow *vw, gpointer vtl ); /* input VikTrwLayer */
+GHashTable *vik_window_get_selected_tracks ( VikWindow *vw );
+void vik_window_set_selected_tracks ( VikWindow *vw, GHashTable *ght, gpointer vtl ); /* gpointer is a VikTrwLayer */
+gpointer vik_window_get_selected_track ( VikWindow *vw ); /* return type VikTrack */
+void vik_window_set_selected_track ( VikWindow *vw, gpointer *vt, gpointer vtl ); /* gpointer is a VikTrwLayer */
+GHashTable *vik_window_get_selected_waypoints ( VikWindow *vw );
+void vik_window_set_selected_waypoints ( VikWindow *vw, GHashTable *ght, gpointer vtl ); /* gpointer is a VikTrwLayer */
+gpointer vik_window_get_selected_waypoint ( VikWindow *vw ); /* return type VikWaypoint */
+void vik_window_set_selected_waypoint ( VikWindow *vw, gpointer *vwp, gpointer vtl ); /* input VikWaypoint, VikTrwLayer */
+/* Return the VikTrwLayer of the selected track(s) or waypoint(s) are in (maybe NULL) */
+gpointer vik_window_get_containing_trw_layer ( VikWindow *vw );
+/* return indicates if a redraw is necessary */
+gboolean vik_window_clear_highlight ( VikWindow *vw );
+
+GThread *vik_window_get_thread ( VikWindow *vw );
+
+void vik_window_set_busy_cursor ( VikWindow *vw );
+void vik_window_clear_busy_cursor ( VikWindow *vw );