//
//  TMKAnnotation.h
//  TnMapKit
//
//  Created by Holzhauer, James on 2/21/14.
//  Copyright (c) 2014 TeleNav. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h> // for UIImage alignment enum

#import "TMKEngineTypes.h"


@class CLLocation;

__attribute__((visibility("default")))
@interface TMKAnnotation : NSObject

// UIImage for use as an annotation on a TMKMapView. Mutually
// exclusive with filename property.  Wins if both are defined.

@property UIImage  *image;

// Filename from which to load an image for use an as annotation on a
// TMKMapView.  Mutually exclusive with image property.  Loses if
// both are defined.

@property NSString *filename;

// Optional text to display with popup

@property (nonatomic, copy) NSString *popupText;

// By default, the annotation's size within the map is inferred from
// the size of the image used to create it. This allows those values
// to be overridden as far as their appearance in the map.

@property NSNumber *imageWidth;
@property NSNumber *imageHeight;

// A layer to associate this annotation with.  Use [TMKMapView
// unusedAnnotationLayer] to determine first/new layer.

@property TMKMapLayer *layer;

// Starting position of the annotation

@property CLLocation *location;

// This specifies the alignment of the annotation icon relative to its
// world coordinate. That is, it specifies whether the annotation
// appears above/below, left/right or centered on the location.

@property UIControlContentHorizontalAlignment horizontalAlignment;
@property UIControlContentVerticalAlignment   verticalAlignment;

// The type of the annotation which determines how the annotation
// behaves in the TMKMapView (as defined in TMKEngineTypes)

@property TMKAnnotationType type;

// Screen position.  Only utilized when TMKAnnotationType = TMKAnnotationType_Screen2D

@property CGPoint screenPosition;

@end

