1 /*
2  *  This file is part of the "GKMap".
3  *  GKMap project borrowed from GMap.NET (by radioman).
4  *
5  *  Copyright (C) 2009-2018 by radioman (email@radioman.lt).
6  *  This program is licensed under the FLAT EARTH License.
7  */
8 
9 using System;
10 using GKMap.MapObjects;
11 using GKMap.MapProviders;
12 
13 namespace GKMap
14 {
PositionChanged(PointLatLng point)15     public delegate void PositionChanged(PointLatLng point);
16 
TileLoadComplete(long elapsedMilliseconds)17     public delegate void TileLoadComplete(long elapsedMilliseconds);
TileLoadStart()18     public delegate void TileLoadStart();
19 
MapDrag()20     public delegate void MapDrag();
MapZoomChanged()21     public delegate void MapZoomChanged();
MapTypeChanged(GMapProvider type)22     public delegate void MapTypeChanged(GMapProvider type);
23 
MarkerEnter(MapMarker item)24     public delegate void MarkerEnter(MapMarker item);
MarkerLeave(MapMarker item)25     public delegate void MarkerLeave(MapMarker item);
26 
PolygonEnter(MapPolygon item)27     public delegate void PolygonEnter(MapPolygon item);
PolygonLeave(MapPolygon item)28     public delegate void PolygonLeave(MapPolygon item);
29 
RouteEnter(MapRoute item)30     public delegate void RouteEnter(MapRoute item);
RouteLeave(MapRoute item)31     public delegate void RouteLeave(MapRoute item);
32 
33     internal interface IMapControl
34     {
35         string CacheLocation { get; set; }
36 
37         MapCore Core { get; }
38 
39         GMapProvider MapProvider { get; set; }
40 
41         int MaxZoom { get; set; }
42 
43         int MinZoom { get; set; }
44 
45         PointLatLng Position { get; set; }
46 
47         int Zoom { get; set; }
48 
49         ObservableCollectionThreadSafe<MapOverlay> Overlays { get; }
50 
51         event PositionChanged OnPositionChanged;
52         event TileLoadComplete OnTileLoadComplete;
53         event TileLoadStart OnTileLoadStart;
54         event MapDrag OnMapDrag;
55         event MapZoomChanged OnMapZoomChanged;
56         event MapTypeChanged OnMapTypeChanged;
57 
FromLocalToLatLng(int x, int y)58         PointLatLng FromLocalToLatLng(int x, int y);
FromLatLngToLocal(PointLatLng point)59         GPoint FromLatLngToLocal(PointLatLng point);
60 
Invalidate()61         void Invalidate();
62 
Refresh()63         void Refresh();
64 
ReloadMap()65         void ReloadMap();
66 
SetPositionByKeywords(string keys)67         GeocoderStatusCode SetPositionByKeywords(string keys);
68 
ZoomAndCenterMarkers(string overlayId)69         bool ZoomAndCenterMarkers(string overlayId);
70 
71         bool HoldInvalidation { get; set; }
72         bool IsMouseOverMarker { get; set; }
73         bool IsMouseOverRoute { get; set; }
74         bool IsMouseOverPolygon { get; set; }
75 
76         #region Callbacks
77 
DoMouseClick(MapObject obj, EventArgs e)78         void DoMouseClick(MapObject obj, EventArgs e);
DoMouseDoubleClick(MapObject obj, EventArgs e)79         void DoMouseDoubleClick(MapObject obj, EventArgs e);
RestoreCursorOnLeave()80         void RestoreCursorOnLeave();
SetCursorHandOnEnter()81         void SetCursorHandOnEnter();
DrawTile(object go, PureImage pureImage, ref bool found)82         void DrawTile(object go, PureImage pureImage, ref bool found);
DrawLowerTile(object go, PureImage pureImage, long Ix, long xoff, long yoff, ref bool found)83         void DrawLowerTile(object go, PureImage pureImage, long Ix, long xoff, long yoff, ref bool found);
DrawMissingTile(object go, Exception ex)84         void DrawMissingTile(object go, Exception ex);
ShowTileGridLines(object go, DrawTile tilePoint)85         void ShowTileGridLines(object go, DrawTile tilePoint);
SetMousePositionToMapCenter()86         void SetMousePositionToMapCenter();
87 
88         #endregion
89     }
90 }
91