//
//  TMKTouchDelegate.h
//  TelenavNavigator
//
//  Created by Holzhauer, James 1/31/2014
//  Copyright (c) 2014 Telenav, Inc. All rights reserved.
//

#import "TMKEngineTypes.h"

typedef enum {
    TnMapZoomGesture_None,
    TnMapZoomGesture_Pinch,
    TnMapZoomGesture_DoubleTap,
    TnMapZoomGesture_TwoFingerDoubleTap,
} TnMapZoomGesture;

@class CLLocation;
@class TnMapEngine;
@protocol TMKTouchDelegate <NSObject>
@optional

//Low level touch input
- (BOOL)multiTouchEvent:(CGPoint)point1 point2:(CGPoint)point2 event:(TMKTouchEvent)event;
- (BOOL)touchEvent:(CGPoint)point event:(TMKTouchEvent)event;

//Map events
- (void)mapWillPan;
- (void)mapIsPanning;
- (void)mapDidPan;

- (void)mapWillTilt;
- (void)mapIsTilting;
- (void)mapDidTilt;

- (void)mapWillRotate;
- (void)mapIsRotating;
- (void)mapDidRotate;

- (BOOL)mapWillZoomWithGesture:(TnMapZoomGesture)gesture;
- (BOOL)mapIsZoomingWithGesture:(TnMapZoomGesture)gesture;
- (BOOL)mapDidZoomWithGesture:(TnMapZoomGesture)gesture;

- (BOOL)mapWasTappedAtLocation:(CLLocation*)location longPressed:(BOOL)longPress;

- (TMKAnnotationPopup*)annotationWasTapped:(TMKAnnotationID*)annotation;
- (TMKAnnotationPopup*)trafficIncidentTappedAtCrossStreet:(NSString*)crossStreet withMessage:(NSString*)message;

- (BOOL)routesTapped:(NSDictionary*)tapInfoForRoutes viewDPI:(float)dpi;

@end
